【问题标题】:jQuery add class to certain elementsjQuery将类添加到某些元素
【发布时间】:2011-01-01 23:02:05
【问题描述】:

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

<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)

谢谢

【问题讨论】:

  • 您有像 THAT 这样的多级菜单吗?继续!也许有问题?

标签: jquery list dom-manipulation


【解决方案1】:

这应该可行:

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

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

【讨论】:

    【解决方案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");
    

    【讨论】:

      【解决方案3】:

      我将在这里使用假设,你知道他们是怎么说的;)

      如果你想为所有的 ul 项目添加特定的类,那么:

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

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

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

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

      使用父>子选择器。

      我会查看 Branislav 提供的选择器文档,以准确找到您想要的内容并使用 firebug 来测试结果。

      【讨论】:

        【解决方案4】:

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

        【讨论】:

          猜你喜欢
          • 2023-03-26
          • 2018-03-20
          • 2011-03-29
          • 2012-02-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-04-24
          相关资源
          最近更新 更多