我有这样的情况:
<ul>
<li>
<a href="#">Link 1</a>
<ul>
<li><a href="">Sub link</a></li>
</ul>
</li>
<li>
<a href="">Link 2</a>
<ul>
<li><a href="">Sub link</a></li>
</ul>
</li>
</ul>
如果文本有子元素,我需要将 span 标签包裹起来。所以第一个 li 需要看起来像
<li><a href="#"><span>Link 1</span></a>
它需要不受限制:
<ul>
<li>
<ul>
<li>
<ul n>
<li n>
我什至不知道如何解决这个问题。我厌倦了这样的事情:
$('li').parent().wrapInner('<span />');
但事实并非如此。
如果有任何帮助,我将不胜感激。
Tnx,
最佳答案
$('li ul').parents('li').children('a').wrapInner('<span />');
这应该是一个快速的方法,我昨天回答了一个类似的问题并做了一个jsperf:http://jsperf.com/jquery-has-vs
这里有一个jsfiddle来演示:http://jsfiddle.net/n9Ew8/2/
文档:
.siblings()
: http://api.jquery.com/siblings
.wrapInner()
:http://api.jquery.com/wrapinner
关于jquery - 环绕每个父文本的跨度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8423307/