我想动态地将元素的所有子元素包装在新元素中。我看了jQuery wrap()函数,但它没有达到预期,因为它需要一个元素并用一些新元素包装它,而我想在一些新元素中组合所有子元素。
/*Sample code*/
<div>
<ul>
<li>
/* All <li> children before <UL> tag, need to be wrapped dynamically within a <span> */
<span class="doSomting"></span>
<a href="#">Click Me</a>
<ul></ul>
</li>
</ul>
/*Expected <li> element*/
<li>
<span>
<span class="doSomting"></span>
<a href="#">Click Me</a>
</span>
<ul></ul>
</li>
更新
我希望将所有元素分组,直到<UL>
标记出现在<li>
内。我已相应更新了代码段。抱歉不明白。
由于
答案 0 :(得分:0)
您可以使用.wrapAll()
$('li').contents().wrapAll('<span />')
注意:如果您有多个li
元素,则必须迭代每个li
$('li').each(function(){
$(this).contents().wrapAll('<span />')
})
演示:Fiddle
更新
$('div > ul > li').each(function () {
$(this).children(':not(ul)').wrapAll('<span />')
})
演示:Fiddle