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");