2

jQueryのaddドキュメントでは、引数を次add(html)のように説明するオーバーロードがリストされています。html

一致した要素のセットに追加するHTMLフラグメント。

すでにadd(element)オーバーロードがあるので、これは次のようにHTML文字列を渡すことを意味すると思います。

var set = $();
set.add("<div></div>");
document.write(set.length); // prints 0

ただし、このコードを実行しても、jQueryでラップされたセットには影響しません。私は何が欠けていますか?

4

3 に答える 3

3

のリターンを以下addsetように設定する必要があります、

set = set.add("<div></div>");

.addチェーンできる照合されたjQueryオブジェクトを返しますが、実際には元のオブジェクトに追加されません。

于 2013-02-19T22:04:09.063 に答える
1

1行で定義するとうまくいきます:http://jsfiddle.net/s2zQr/3/

var set = $().add("<div></div>");
document.write(set.length);

@Pavel Chernovが指摘したように... .add() メソッドは新しいセットを作成します(そのため、カウントが更新されませんでした)

于 2013-02-19T22:04:50.873 に答える
1

.add() メソッドは新しいセットを作成し、pdiv の元のセットを変更しないため、以下は追加された要素を保存しません。

var pdiv = $("p");
pdiv.add("div"); // WRONG, pdiv will not change

あなたのセットはまだ空です

于 2013-02-19T22:05:03.550 に答える