• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:jQueryで複数あるUL要素の最後のLI要素以外を処理したい)

jQueryで複数あるUL要素の最後のLI要素以外を処理したい

このQ&Aのポイント
  • jQueryを使って、複数のUL要素内で最後のLI要素以外を処理したい場合、どのようにすれば良いでしょうか?
  • UL要素内の最後のLI要素以外に対してCSSを追加する方法を教えてください。
  • 2カ所にあるUL要素の最後のLI要素以外を同じように処理したい場合、どのようにコードを記述すれば良いでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • mtaka2
  • ベストアンサー率73% (867/1179)
回答No.1

---ここから--- $(function(){ $("ul").each(function(index, elem) { $("li:not(:last)", $(elem)).css("~", "~"); }); }); ---ここまで--- でいけると思います。 引数を二つしているする「$(A,B)」という形式では、 B要素の下から、Aの条件にマッチする要素を抽出します。 そこで、個々のul要素に対してeach でループを回してそれを第二引数に指定すれば、 「そのul要素の下」にある要素の中で「最後のを除くli要素」を抽出できることになります。

ey_wing
質問者

お礼

ご回答ありがとうございます。 eachまではなんとか理解できていたのですがその後にご教授いただいた記述まではわかりませんでした。 少し冗長化の気もしますがこちらのほうがより的確な指定方法になるのかと思います。 またご丁寧な解説にも感謝しております。 ほかの要素でも適用できそうなので癖をつけるためにもご教授いただいた方法で実現したいと思います。 この度はありがとうございました。

その他の回答 (1)

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.2

jqueryはよく知りませんが… :lastは要素集合の最後(選択されたもののうち最後の一つ)を意味するので、ご質問文のような動作になります。 これに対して、:last-childは要素集合のうち「親要素の最後の子要素」の集合を意味しますので、  $("ul li:not(:last-child)").css("~","~"); のように記述すれば、目的に合った指定になるのではないでしょうか?

ey_wing
質問者

お礼

ご回答ありがとうございます。 :last-childの指定方法があることをすっかり忘れていました。 なるほど、こちらでも実現できますね。 良い勉強になりました。 ありがとうございました。