给定两个有序但不一定是顺序的兄弟元素,我如何将 html 包裹在它们周围?
$(element_a).before( "<span class='wow'>" );
$(element_b).after( "</span>" );
以上不起作用,因为它为我关闭了开始标签,并且不插入后者。
(兄弟姐妹是各种各样的类型和类,所以使用 slice 来帮助完成这项任务很困难,但也许我还没有考虑清楚。)
给定两个有序但不一定是顺序的兄弟元素,我如何将 html 包裹在它们周围?
$(element_a).before( "<span class='wow'>" );
$(element_b).after( "</span>" );
以上不起作用,因为它为我关闭了开始标签,并且不插入后者。
(兄弟姐妹是各种各样的类型和类,所以使用 slice 来帮助完成这项任务很困难,但也许我还没有考虑清楚。)
$("<span class='wow'></span").appendTo('#container');
$(element_a, element_b).each(function() {
$(this).clone(true).appendTo(".wow");
$(this).remove()
})
element_a
如果我理解正确,您希望在和element_b
(包括)之间的所有元素周围放置一个跨度。
一旦您弄清楚如何将所有这些元素放入单个 jQuery 对象中,该.wrapAll()
方法就可以很好地做到这一点,但是这样的事情应该可以工作:
var $els = $(element_a);
$els = $els.add( els.nextUntil(element_b) ).add(element_b)
$els.wrapAll("<span class='wow' />");
这从一个包含 just 的 jQuery 对象开始element_a
,然后使用.add()
方法和.nextUntil()
方法element_a
添加和之间的所有元素element_b
,最后添加 in element_b
。