我有一个看起来像这样的菜单项。
<ul>
<li><a href="id=1">HOME</a></li>
<li><a href="id=2">News</a>
<ul>
<li><a href="id=3">News Archive</a></li>
</ul>
</li>
</ul>
我希望它看起来像这样
<ul>
<li><a href="id=1">HOME</a></li>
<li class="hassub"><a href="id=2">News</a>
<ul>
<li><a href="id=3">News Archive</a></li>
</ul>
</li>
</ul>
因此,如果李有一个孩子,那么它将有一类hassub。
我尝试使用jQuery see fiddle添加它。但它正在为所有人提供课程。我哪里错了?
答案 0 :(得分:6)
尝试.has
$('ul li').has('ul').addClass('hassub');
答案 1 :(得分:6)
试试这个,只使用一个$(selector)
:
$('ul li:has(ul)').addClass('hassub');
现场演示:
http://jsfiddle.net/oscarj24/fNrQE/2/
答案 2 :(得分:1)
您无需检查ul是否存在以将类添加到父li,您只需在jQuery选择器中定位子ul即可。这是一个例子:
// Add Class to LI with Child UL (Level 1)
$('.menuDiv li ul').parent().addClass('hasChild');
如果未找到ul,则不会触发代码。将类添加到所有列表项后,您只需使用&gt;仅定位第一个子锚(如果需要)。选择器:
.menuDiv li.hasChild > a
...或使用li父类定位所有<ul>
:
.menuDiv li.hasChild ul
您可以查看以下链接,查看实时示例(也包含2级列表)以及有关代码的更多详细信息:
http://html-tuts.com/add-class-to-parent-li-if-has-child-ul/