jQueryの - どのようにすべての最後のリスト項目にクラスを追加するには?

StackOverflow https://stackoverflow.com/questions/563740

  •  05-09-2019
  •  | 
  •  

質問

動作していない、ここでいくつかのコードを手に入れました

$("#sidebar ul li:last").each(function(){
      $(this).addClass("last");
});

基本的に私は3つのリストを持っており、各順不同リストの最後に表示される各項目にクラス(最後)を追加したい。

<ul>
      <li>Item 1</li>
      <li>Item 2</li>
      <li class="last">Item 3</li>
</ul>

理にかなっている希望、 乾杯!

役に立ちましたか?

解決

簡単に間違いが作ります。これを試してください:

$("#sidebar ul li:last-child").addClass("last");

基本的には:最後はかなりあなたはそれがないと思う何をしません。それが唯一の文書ではなく、各リストの最後には非常に最後にマッチします。最後に子供がためのものです。

:それは何ですか。

他のヒント

jQueryを使って

このを追加
$("ul li").last().addClass('last');

は動作しません理由は:lastが一つだけの要素と一致していることに起因しています。 jQueryのドキュメントから:

  

最後に選択した要素にマッチします。

それでは、あなたのコードは最後の値を取って、そのセットから、その後<li>内のすべての<ul>要素のセットを取得しているやっています。例:

 <ul>
   <li>1</li>
   <li>2</li>
 </ul>
 <ul>
   <li>3</li>
   <li>4</li>
 </ul>
 <ul>
   <li>5</li>
   <li>6</li>
 </ul>

あなたのコードは、要素<li>6</li>を返します。 (内部的には、それは<li>1</li>して、最後の1を切り落とすと、それを返すために<li>6</li>を集めるだろう)。

あなたが探しているのは他の回答がここで言ったことです::last-child

それとも、あなたのリストにIDを与えるとjqueryの呼び出しにコンテキストとしてこれを使用することができます。

<ul id="myList">
  <li>Item</li>
  <li>Item</li>
  <li>Item</li>
  <li>Item</li>
</ul>

<ul id="anotherList">
  <li>Item</li>
  <li>Item</li>
  <li>Item</li>
  <li>Item</li>
</ul>

そして、あなたが行うことができます:

jQuery("li:last", "ul#myList").addClass("lastItem");

これで最初のリストの最後の李はクラス「lastItem」を持っているでしょう。

編集:申し訳ありませんが、質問を読み違えます。これを無視してください。

あなたは3つの別々のリストにクラスを追加する必要がある場合は、

は、あなたが彼らのためにクラスを割り当てて使用することができます「はそれぞれ」:

$('#sidebar ul.class li:last-child').each(function(e){
    $(this).addClass("last");
});

これは、あなたが期待どおりに動作するはずです。

あなたが試すことができます。

$('#sidebar ul li:last').addClass('last');
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top