0

いくつかの DOM 挿入を行う準備をしているときに、jQuery オブジェクトの配列を構築します。たとえば、select のオプションは次のとおりです。

var options = [];

for (...) {
     var $option = $('<option>')
     ...
     options.push($option);
}

このoptions配列は、ページ上の多くの選択のテンプレートとして使用されます。だから私は追加したい:

$('.target-select').append(...)

そして、すべてのオプションを追加$('<div>')でラップすることなくこれを作成し、children().

children空のjQueryオブジェクトを作成し、親要素と関数に依存せずに要素を順番に追加することは可能ですか? ( $.addDOM にない要素の順序は保証されません)

4

2 に答える 2

0

次のコードは問題なく動作するようです: http://jsfiddle.net/75kVb/5/

var options = [];

for (var i = 0;i < 10; i++) {
     var $option = $('<option/>')
     $option.text(i);     
     $('.target-class').append($option);
}

空の選択を行うことができます...

var $select = $('<select/>');
var options = [];

for (var i = 0;i < 10; i++) {
     var $option = $('<option/>')
     $option.text(i);     
     $select.append($option);
}

$select.appendTo('body'); // not a must, just to prove that it works.

それらを取り戻すには:

console.log($select.find('option'));

または、配列を単純な配列 (<option>配列ではなく) として使用することもできます。値を使用すると、次のことができます。

var options = [];
for (var i = 0; i < 10; i++){
    options.push(i);
}

var newOptions = $.map( options, function( item ) { // take every second item
  if (item % 2 == 0)
      return '<option>' + item + '</option>';
});

選択を移入するための使用例: $select.html(newOptions);

于 2013-10-08T12:57:39.157 に答える