jQuery将类添加到某些元素

时间:2010-01-06 07:24:55

标签: jquery list dom-manipulation

我有一个像这样的多级菜单:

<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&gt; li.class)而不是内部子项(ul&gt; li&gt; ul&gt; li.class)

由于

4 个答案:

答案 0 :(得分:3)

这应该有效:

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

它会将类添加到divId中找到的第一个ul标记的子元素。

答案 1 :(得分: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");

答案 2 :(得分:1)

我将在这里使用假设,你知道他们对他们的看法;)

如果要为所有ul项添加特定类,则:

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

你可以用同样的方式设置列表项的样式。

如果你想在li中添加类到li,你可以使用:

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

使用父母&gt;儿童选择器。

我看看Branislav提供的选择器文档,找到你想要的东西,并使用firebug来测试结果。

答案 3 :(得分:0)

请您提供有关您案件的更多信息。从我看到你需要简单的选择和添加类。您可以在jquery selectors hereaddClass method here

上找到相关信息