在jQueryadd
文档中,它列出了一个add(html)
将参数描述为的重载html
:
要添加到匹配元素集的 HTML 片段。
由于已经有一个add(element)
重载,我假设这意味着您将一个 HTML 字符串传递给它,如下所示:
var set = $();
set.add("<div></div>");
document.write(set.length); // prints 0
但是,当此代码运行时,它对 jQuery 包装集没有影响。我错过了什么?
在jQueryadd
文档中,它列出了一个add(html)
将参数描述为的重载html
:
要添加到匹配元素集的 HTML 片段。
由于已经有一个add(element)
重载,我假设这意味着您将一个 HTML 字符串传递给它,如下所示:
var set = $();
set.add("<div></div>");
document.write(set.length); // prints 0
但是,当此代码运行时,它对 jQuery 包装集没有影响。我错过了什么?
您必须将返回设置为add
如下set
所示,
set = set.add("<div></div>");
.add
返回您可以链接的整理后的 jQuery 对象,它并没有真正将其添加到原始对象中。
如果您在一行中定义它,它工作正常:http: //jsfiddle.net/s2zQr/3/
var set = $().add("<div></div>");
document.write(set.length);
正如@Pavel Chernov 指出的那样...... .add() 方法创建了一个新集合(这就是您的计数从未更新的原因)
以下将不会保存添加的元素,因为 .add() 方法会创建一个新集合,并保持 pdiv 中的原始集合不变:
var pdiv = $("p"); pdiv.add("div"); // WRONG, pdiv will not change
所以你的集合还是空的