jQuery wrap chaining [关闭]

问题描述 投票:3回答:3
<p>hello</p>
$("p").wrap("<div class='inner'></div>").wrap("<div class='outer'></div>");

结果是<div class="inner"><div class="outer"><p>hello</p></div></div>

为什么会这样?我期待内在的内在,而不是其他。

这里有小提琴:http://jsfiddle.net/qnYDY/

jquery html chaining
3个回答
2
投票

因为wrap()方法:

...返回用于链接目的的原始元素集。

资料来源:http://api.jquery.com/wrap/


3
投票

我认为第一个包装调用本身返回“p”,所以当你再次包装它时,“外部”div将包装“p”标签而不是它的任何父节点。


1
投票

正如Jamie Dixon所述,wrap()返回原始论证集。

您可以使用parent()附加到新添加的元素:

$("p").wrap("<div class='inner'></div>").parent().wrap("<div class='outer'></div>");
© www.soinside.com 2019 - 2024. All rights reserved.