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 回答