给定两个有序但不一定连续的同级元素,我如何将 html 包裹在它们周围?
$(element_a).before( "<span class='wow'>" );
$(element_b).after( "</span>" );
上面的方法不起作用,因为它为我关闭了开始标签,并且不插入后者。
(这对 sibling 的类型和类别各不相同,因此使用切片来帮助完成这项任务很困难,但也许我还没有考虑清楚。)
最佳答案
如果我理解正确的话,您希望在 element_a
和 element_b
(含)之间的所有元素放置一个跨度。
.wrapAll()
method一旦你弄清楚如何将所有这些元素放入一个 jQuery 对象中,就可以很好地做到这一点,但是像这样的东西应该可以工作:
var $els = $(element_a);
$els = $els.add( els.nextUntil(element_b) ).add(element_b)
$els.wrapAll("<span class='wow' />");
这从仅包含 element_a
的 jQuery 对象开始,然后使用 .add()
method和 .nextUntil()
method添加element_a
和element_b
之间的所有元素,最后添加element_b
。
关于jquery - 给定两个元素,将 html 包裹在异构元素周围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10713193/