3

次のようなマルチレベル メニューがあります。

<ul>
  <li>item 1
    <ul>
      <li>item 1.1</li>
      <li>item 1.2</li>
    </ul>
  </li>
  <li>item 2</li>
  <li>item 3
    <ul>
      <li>item 3.1</li>
      <li>item 3.2</li>
    </ul>
  </li>
  <li>item 4</li>
</ul>

jQueryで私が持っている

$("#divId ul li:odd").addClass("blue");
$("#divId ul li:even").addClass("green");

問題は、jQuery がクラスをすべてのリストに追加することです。jQuery でクラスを最初のレベル (ul > li.class) に追加し、内部の子 (ul > li > ul > li.class) には追加しないようにしたいと思います。

ありがとう

4

4 に答える 4

3

これはうまくいくはずです:

$("#divId ul:first > li:odd").addClass("blue"); 
$("#divId ul:first > li:even").addClass("green"); 

divId で見つかった最初の ul タグの子にクラスを追加します。

于 2010-01-06T18:00:53.447 に答える
2

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

$("#divId ul li:not(#divId ul li ul li):odd").addClass("blue");
$("#divId ul li:not(#divId ul li ul li):even").addClass("green");
于 2010-01-06T17:54:17.213 に答える
1

私はここで仮定を使用するつもりです。

すべての ul アイテムに特定のクラスを追加する場合は、次のようにします。

$('ul').addClass('class-addition');

同じ方法でリスト項目のスタイルを設定できます。

li 内の ul にクラスを追加する場合は、次を使用できます。

$('li > ul').addClass('class-addition');

親 > 子セレクターを使用します。

Branislav が提供するセレクターのドキュメントを見て、必要なものを正確に見つけ、firebug を使用して結果をテストします。

于 2010-01-06T11:35:57.033 に答える
0

あなたのケースについて詳しく教えてください。私が見るところ、単純な選択とクラスの追加が必要です。jquery セレクターに関する情報はこちらで、addClass メソッドに関する情報はこちらで見つけることができます。

于 2010-01-06T09:30:50.713 に答える