1

私は問題があります。私のコードの一部を見てください:

<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を使いたいです。手がかりに感謝します。

4

3 に答える 3

1
$('li > a').filter(function() {
  return !$(this).siblings('ul').length;
}).addClass('link');

編集

あなたの質問で、ネストされたリストアンカーにもlinkクラスを持たせたいことに気づきました。次のようなものが機能するはずです:-

$('li > a').addClass('link').filter(function() {
  return $(this).siblings('ul').length;
}).removeClass('link');
于 2012-10-05T14:54:18.357 に答える
1

セレクター.not()で使用できます。:has()

$("li").not("li:has(ul)")
       .children("a")
       .addClass("link");

http://jsfiddle.net/j4zsq/


または、a対象となる要素が常に唯一の子であるように見える場合は、only-childセレクターを使用できます。

$("li > a:only-child").addClass("link");

http://jsfiddle.net/j4zsq/1/

于 2012-10-05T14:55:02.000 に答える
0
$("li").each(function(){
    if($(this).children('ul').length == 0)
        $(this).addClass('link');
});
于 2012-10-05T14:53:48.290 に答える