给定两个有序但不一定是连续的同胞元素,我怎样才能把html包裹起来呢?给出了两个元素,将html换成不同的元素?
$(element_a).before("<span class='wow'>");
$(element_b).after("</span>");
上述不起作用,因为它关闭了我的开标签,并没有插入后者。
(兄弟姐妹是对类型和类乌合之众,所以用片,以帮助这个任务是困难的,但也许我还没有想通了。)
给定两个有序但不一定是连续的同胞元素,我怎样才能把html包裹起来呢?给出了两个元素,将html换成不同的元素?
$(element_a).before("<span class='wow'>");
$(element_b).after("</span>");
上述不起作用,因为它关闭了我的开标签,并没有插入后者。
(兄弟姐妹是对类型和类乌合之众,所以用片,以帮助这个任务是困难的,但也许我还没有想通了。)
如果我正确理解了你的意思,那么你需要围绕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' />");
这始于只包含一个jQuery对象element_a
,然后使用.add()
method和.nextUntil()
method添加element_a
和element_b
之间的所有元素,最后添加element_b
。
$("<span class='wow'></span").appendTo('#container');
$(element_a, element_b).each(function() {
$(this).clone(true).appendTo(".wow");
$(this).remove()
})
关于'.wrap()'的事情是,它将分开包装每个元素 - 而不是在同一个包装器中。 – ahren
你是否想要包裹兄弟姐妹之间的元素? (如果它们不是连续的) – ahren
如何确定是否有任何两个元素应该被视为异构?你在比较什么? – Sampson
如果我正确理解你,你想在'element_a'和'element_b'(包括这两个元素)之间的所有元素上放一个单独的跨度,并且我已经在这个基础上给出了答案,但是它可能有帮助你可以提供一些简单的前后例子html ... – nnnnnn