鉴于两个有序但不一定是连续的兄弟元素,我如何在它们周围包装html?
$(element_a).before( "<span class='wow'>" );
$(element_b).after( "</span>" );
上面没有用,因为它关闭了我的开头标签,并没有插入后者。
(兄弟姐妹是各种类型和类别的杂技团队,所以使用切片帮助完成这项任务很困难,但也许我没想过。)
答案 0 :(得分:1)
$("<span class='wow'></span").appendTo('#container');
$(element_a, element_b).each(function() {
$(this).clone(true).appendTo(".wow");
$(this).remove()
})
答案 1 :(得分:1)
如果我理解正确,您希望在element_a
和element_b
(包括)之间的所有元素周围放置一个范围。
一旦你弄清楚如何将所有这些元素放到一个jQuery对象中,.wrapAll()
method可以很好地做到这一点,但这样的事情应该有效:
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
。