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。