我有以下代码,
var elementsToBeAppended = $();
for(var i=0; i<10; i++) {
elementsToBeAppended.add($('<div>'));
}
alert(elementsToBeAppended.length);
我只是期望上面的代码会警告10但是它正在警告0,我实际上试图将该对象分组到该变量中然后我想将它附加到DOM以避免使用.append()每次迭代。
任何人都可以告诉我,我是否以错误的方式思考。如果是这样,那就引导我走正确的路。
答案 0 :(得分:4)
与大多数jQuery方法一样,.add()
返回一个新对象:
elementsToBeAppended = elementsToBeAppended.add($('<div>'));
从文档(强调我的):
给定一个表示一组DOM元素的jQuery对象,
.add()
方法从这些元素的并集和传递给方法的元素中构造一个新的jQuery对象。
下面再说:
更新的元素集可用于以下(链接) 方法,或分配给变量供以后使用。例如:
$( "p" ).add( "div" ).addClass( "widget" ); var pdiv = $( "p" ).add( "div" );
以下内容不会保存添加的元素,因为
.add()
方法创建一个新集并在pdiv
中保留原始集 不变:var pdiv = $( "p" ); pdiv.add( "div" ); // WRONG, pdiv will not change
阅读文档通常有助于:)