2

jQueryでいくつかのDOMノードを作成し、それらを選択したままhtmlに追加したいので、それらを再度選択する必要はありません。

これは私のコードです:

var foo=$('');
for(var i=0;i<10;i++){
    var bar=$('<div>');
    $('body').append(bar);
    foo.add(bar);
}

どうやら foo は最終的に空のままになるので、うまくいきません。最後にすべてのバーを選択せず​​に、どのように対処すればよいですか?

4

3 に答える 3

3

jQuery オブジェクトではなく、配列を使用できます。

var foo = [];
for(var i=0; i < 10; i++) {
  var bar = $('<div>');
  $('body').append(bar);
  foo.push(bar[0]);
}
foo = $(foo);
于 2012-06-27T09:53:40.273 に答える
2

この問題の原因は、.add()メソッドが元の jQuery コレクション オブジェクトを変更せず、新しいものを返すことです。

コードを次のように変更するだけです

var foo=$('');
for(var i=0;i<10;i++){
    var bar=$('<div>');
    $('body').append(bar);
    foo = foo.add(bar);
}

console.log(foo);
于 2012-06-27T10:26:37.033 に答える
1

jQuery コレクションに新しい要素を追加するには、 を使用しますfoo = foo.add(bar)

コードの更新バージョンは次のとおりです。

var foo = $();
for (var i = 0; i < 10; i++) {
    var bar = $("<div />").appendTo("body");
    foo = foo.add(bar);
}
foo.css("color", "red");

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

于 2012-06-27T10:33:18.450 に答える