Javascript 将类添加到所有不带';不包括更多的ul元素
我有个问题。请参阅我的代码部分:Javascript 将类添加到所有不带';不包括更多的ul元素,javascript,jquery,html-lists,Javascript,Jquery,Html Lists,我有个问题。请参阅我的代码部分: <ul> <li><a href="#">Test 1</a></li> <li><a href="#">Test 2</a> <ul> <li><a href="#">Test 3</a></li> <li><a href="#">Test 4
<ul>
<li><a href="#">Test 1</a></li>
<li><a href="#">Test 2</a>
<ul>
<li><a href="#">Test 3</a></li>
<li><a href="#">Test 4</a></li>
</ul>
</li>
<li><a href="#">Test 5</a></li>
<li><a href="#">Test 6</a></li>
<li><a href="#">Test 7</a></li>
<li><a href="#">Test 8</a>
<ul>
<li><a href="#">Test 9</a></li>
<li><a href="#">Test 10</a></li>
<li><a href="#">Test 11</a></li>
<li><a href="#">Test 12</a></li>
</ul>
</li>
</ul>
-
-
我想向所有不包含更多ul元素的项目添加类-请查看我想要实现的目标:
<ul>
<li><a href="#" class="link">Test 1</a></li>
<li><a href="#">Test 2</a>
<ul>
<li><a href="#" class="link">Test 3</a></li>
<li><a href="#" class="link">Test 4</a></li>
</ul>
</li>
<li><a href="#" class="link">Test 5</a></li>
<li><a href="#" class="link">Test 6</a></li>
<li><a href="#" class="link">Test 7</a></li>
<li><a href="#">Test 8</a>
<ul>
<li><a href="#" class="link">Test 9</a></li>
<li><a href="#" class="link">Test 10</a></li>
<li><a href="#" class="link">Test 11</a></li>
<li><a href="#" class="link">Test 12</a></li>
</ul>
</li>
</ul>
-
-
我想使用jquery。非常感谢你提供的线索
$("li").each(function(){
if($(this).children('ul').length == 0)
$(this).addClass('link');
});
编辑
刚才在您的问题中注意到,您希望嵌套列表锚也具有链接
类,类似这样的功能应该可以工作:-
$('li > a').addClass('link').filter(function() {
return $(this).siblings('ul').length;
}).removeClass('link');
您可以与选择器一起使用
$("li").not("li:has(ul)")
.children("a")
.addClass("link");
$("li > a:only-child").addClass("link");
或者考虑到要定位的
a
元素似乎总是唯一的子元素,您可以使用选择器
$("li").not("li:has(ul)")
.children("a")
.addClass("link");
$("li > a:only-child").addClass("link");