jQuery append() – 返回附加元素

我正在使用jQuery.append()dynamic添加一些元素。 有没有办法得到这些新插入的元素的jQuery集合或数组?

所以我想这样做:

$("#myDiv").append(newHtml); var newElementsAppended = // answer to the question I'm asking newElementsAppended.effects("highlight", {}, 2000); 

有一个更简单的方法来做到这一点:

 $(newHtml).appendTo('#myDiv').effects(...); 

这通过首先使用jQuery(html [, ownerDocument ])创buildnewHtml jQuery(html [, ownerDocument ]) ,然后使用appendTo(target) (注意“ To ”位)将它添加到#mydiv的末尾来#mydiv

因为你现在 $(newHtml) 开始appendTo('#myDiv') $(newHtml)的最终结果是html的新位,而.effects(...)调用也将在html的位上。

 // wrap it in jQuery, now it's a collection var $elements = $(someHTML); // append to the DOM $("#myDiv").append($elements); // do stuff, using the initial reference $elements.effects("highlight", {}, 2000); 
 var newElementsAppended = $(newHtml).appendTo("#myDiv"); newElementsAppended.effects("highlight", {}, 2000); 

有一点提醒 ,当dynamic添加元素时,像append()appendTo()prepend()prependTo()的函数会返回一个jQuery对象,而不是HTML DOM元素。

DEMO

 var container=$("div.container").get(0), htmlA="<div class=children>A</div>", htmlB="<div class=children>B</div>"; // jQuery object alert( $(container).append(htmlA) ); // outputs "[object Object]" // HTML DOM element alert( $(container).append(htmlB).get(0) ); // outputs "[object HTMLDivElement]" 

我想你可以做这样的事情:

 var $child = $("#parentId").append("<div></div>").children("div:last-child"); 

父类#parentId从append返回,所以添加一个jQuery的子查询,以获得最后的div子插入。

$ child是添加的jquery包装的子div。