如何添加一个类来列出有jquery的无序列表子列表?

时间:2010-09-05 05:42:31

标签: jquery

我想在li标签中添加一个名为“with_ul”的类,其中在jquery下面的正常列表中有ul。

在下面的例子中,我需要将类添加到Level 1-B,Level 2-B-1和Level 1-C的列表,因为它们有一个无序列表。

   <ul id="nav">
      <li>Level 1-A</li>
      <li>Level 1-B
          <ul>
              <li>Level 2-B-1
                  <ul>
                      <li>Level 3-B-1</li>
              </li>
              <li>Level 2-B-2</li>
          </ul>
      </li>
      <li>Level 1-C
          <ul>
              <li>Level 2-C-1</li>
          </ul>
      </li>
...
...
</ul>

提前致谢。

3 个答案:

答案 0 :(得分:3)

$("li ul").parent().addClass('with_ul')

答案 1 :(得分:2)

您可以使用:has() selector选择包含特定后代的所有元素 例如:

$('li:has(ul)').addClass('with_ul');

如果您只想选择直接包含<li>的{​​{1}}代码,您可以写

<ul>

<击>

答案 2 :(得分:0)

Aaron的答案工作正常,我只会略微修改它,因为子项继承了父母的样式,Level-1B下的所有内容看起来都一样,很高兴添加.no_url class:

$("ul#nav li").addClass("no_ul");
$("ul#nav li>ul").parent().removeClass("no_ul").addClass("with_ul");

编辑:Slaks甚至更好;)