1

<select>ページ上のすべての要素を検索し、インデックスを取得してから、各インデックスを値としてすべての select に追加しようとしています<option>。ここで私はそれぞれを選択しています:

<select class="select"></select>
<select class="select"></select>
<select class="select"></select>
<select class="select"></select>

var i = 0;
  $(".select").each(function(){
    ++i;
  });
  $(".select").each(function(){
    for (i > 0){
      $(this).append("<option val='" + i + "'>" + i + "</option>");
    }
});

最終的に、私が達成しようとしている目標は、各選択が次のようになります。

<select>
  <option val="1">1</option>
  <option val="2">2</option>
  <option val="3">3</option>
  <option val="4">4</option>
  <option val="5">5</option>
  <option val="6">6</option>
  <option val="7">7</option>
  <option val="8">8</option>
  <option val="9">9</option>
  <option val="10">10</option>
</select>

私はほとんどそこにいるように見えます...

4

2 に答える 2

1

すべての選択が合計選択と同じ数のオプションを取得する必要がある場合は、次のようにするだけです。

var sel = $("select")
sel.map(function(i, s) {
     return $("<option>", {text: i, value: i})[0];
}).appendTo(sel);

デモ: http://jsfiddle.net/vmUpN/


興味のある方は、プレーンな JS バージョンをご覧ください。

var sel = document.getElementsByTagName("select");
var opts = document.createDocumentFragment();

for (var i = 0; i < sel.length; i++) {
    opts.appendChild(new Option(i, i));
}
for (var i = 0; i < sel.length; i++) {
    sel[i].appendChild(opts.cloneNode(true));
}

デモ: http://jsfiddle.net/vmUpN/1/

于 2013-10-29T20:53:05.773 に答える
1
var $selects = $("select");
var selCount = $selects.length;

for(var i=1; i<=selCount; i++){
    $selects.append("<option value='" + i + "'>" + i + "</option>");
}

http://jsfiddle.net/Wy643/

于 2013-10-29T20:52:49.343 に答える