所以我有一个“ul”和“li”下拉菜单。像这样:
<ul>
<li><a href="">Link 1</a>
<ul>
<li><a href="">SubLink 1</a>
<li><a href="">SubLink 2</a>
</ul>
</li>
</ul>
我需要为“li”中包含“ul”的每个锚添加一个类。在这种情况下,我想将其添加到“链接1”。
我尝试将其添加到包含“ul”子项的“li”但它似乎不起作用。我不知道为什么。我尝试过serverl方法但没有结果。我不熟悉jquery:)
我试过了:
$('ul li:has(ul)').addClass('someclass');
我把它放在我的“$(document).ready”
中答案 0 :(得分:2)
你试过吗?
$('ul li ul').siblings('a').addClass('someclass');
结果将是:
<ul>
<li>
<a href="" class="someClass">Link 1</a>
<ul>
<li>
<a href="">SubLink 1</a>
</li>
<li>
<a href="">SubLink 2</a>
</li>
</ul>
</li>
</ul>
答案 1 :(得分:1)
答案 2 :(得分:0)
您说您需要将其添加到锚点,但您的代码是将其添加到li
。
如果要将其添加到锚点:
$('ul li:has(ul)').children('a').addClass('someclass');
或选择器中的所有内容:
$('ul li:has(ul) > a').addClass('someclass');
答案 3 :(得分:0)
这可能效率不高,但你可以
$('ul li ul').parent().parent().addClass('someclass');
答案 4 :(得分:0)
我建议您向父id
元素添加ul
属性,以便页面上的其他元素不会出现任何问题。我在父元素中添加了id
dropdown
属性。
如果ul
中有div#dropdown
个元素,它会在嵌套的ul
元素中为链接添加一个类。
$(function(){
$('#dropdown ul a').addClass('someclass');
});
jsfiddle:http://jsfiddle.net/HMzLh/
答案 5 :(得分:0)
您无需检查ul是否存在以添加简单类,您只需在jQuery选择器中定位子ul即可。这是一个例子:
// Add Class to LI with Child UL (Level 1)
$('.menuContainer li ul').parent().addClass('hasChild');
将类添加到所有列表项后,您只需使用&gt;定位锚点即可。选择器,在jQuery $('li.hasChild > a')
中也是如此,或者在CSS中也是如此。
您可以查看以下链接,查看实时示例(也包含2级列表)以及有关代码的更多详细信息:
http://html-tuts.com/add-class-to-parent-li-if-has-child-ul/