我遇到一个问题,jQuery试图选择除了最后一个ul内的每个主题项。
示例HTML(简化版本)
<div id="foo">
<nav>
<ul>
<li>
<a href="#" class="active"><span>xxxxx</span></a>
<ul class="level2">
<li>
<a href="#"><span>xxxxx</span></a>
<ul class="level3">
<li><a href="#"><span>xxxxx</span></a></li>
<li><a href="#"><span>xxxxx</span></a></li>
<li><a href="#"><span>xxxxx</span></a></li>
<li><a href="#"><span>xxxxx</span></a></li>
</ul>
</li>
</ul>
</li>
</ul>
</nav>
</div>
我尝试过的一些jQuery示例(但失败并返回所有锚点)
var menu = $('#foo');
menu.find( "nav ul:not(:last) a" ).each(function() {
console.log($(this).text() );
});
以上内容返回示例中的所有6个锚点。
我只想要2个锚点(前2个级别,而不是最后一个级别)。
任何指针都会非常感激。
由于
答案 0 :(得分:1)
试试这个 -
menu.find( "nav ul a" ).filter(function(){
return $(this).closest('ul').find('ul').length > 0;
}).each(function() {
console.log($(this).text() );
});
答案 1 :(得分:0)
最简单的方法是,您只想选择直接后代:
var menu = $('#foo');
menu.find( "nav ul:not(:last) > li > a" ).each(function() {
$(this).css('color','red');
});
答案 2 :(得分:0)
menu.find("ul:not(:last) > li > a")
可能是您正在寻找的选择器。