jquery - 需要 jQuery 代码来查找包含 ul 且元素超过 3 个的 div

标签 jquery html

我需要 jQuery 代码,我可以用它来查找 div,它是至少一个 ul 的直接父级,而 ul 又包含 3 个以上的元素。当找到这样的 div 时,它应该将类名 target 添加到它。

例如,如果我有以下 HTML 代码:

JSFiddle 在这里: http://jsfiddle.net/AvkY5/

<div class="main">
  <div class="main_child_1">
    <ul>
      <li>Lorem Ipsum</li>
      <li>Lorem Ipsum</li>
    </ul>
    <ul>
      <li>Lorem Ipsum</li>
      <li>Lorem Ipsum</li>
    </ul>
  </div>
  <div class="main_child_2">
    <ul>
      <li>Lorem Ipsum</li>
      <li>Lorem Ipsum</li>
      <li>Lorem Ipsum</li>
      <li>Lorem Ipsum</li>
      <li>Lorem Ipsum</li>
    </ul>
  </div>
  <div class="main_child_3">
    <p>Lorem Ipsum</p>
  </div>
  <div class="main_child_4">
    <ul>
      <li>Lorem Ipsum</li>
      <li>Lorem Ipsum</li>
      <li>Lorem Ipsum</li>
      <li>Lorem Ipsum</li>
    </ul>
    <div class="main_child_4_child_1">
      <p>Lorem Ipsum</p>
    </div>
    <div class="main_child_4_child_2">
      <ul>
        <li>Lorem Ipsum</li>
        <li>Lorem Ipsum</li>
        <li>Lorem Ipsum</li>
      </ul>
    </div>
  </div>
  <div class="main_child_5">
    <p>Lorem Ipsum</p>
    <div class="main_child_5_child_1">
      <p>Lorem Ipsum</p>
    </div>
    <div class="main_child_5_child_2">
      <ul>
        <li>Lorem Ipsum</li>
        <li>Lorem Ipsum</li>
        <li>Lorem Ipsum</li>
        <li>Lorem Ipsum</li>
        <li>Lorem Ipsum</li>
        <li>Lorem Ipsum</li>
      </ul>
    </div>
  </div>
  <div class="main_child_6">
    <ul>
      <li>Lorem Ipsum</li>
      <li>Lorem Ipsum</li>
      <li>Lorem Ipsum</li>
    </ul>
    <div class="main_child_6_child_1">
      <p>Lorem Ipsum</p>
    </div>
    <div class="main_child_6_child_2">
      <ul>
        <li>Lorem Ipsum</li>
        <li>Lorem Ipsum</li>
        <li>Lorem Ipsum</li>
        <li>Lorem Ipsum</li>
        <li>Lorem Ipsum</li>
        <li>Lorem Ipsum</li>
      </ul>
    </div>
    <div class="main_child_6_child_3">
      <p>Lorem Ipsum</p>
    </div>
  </div>
</div>

然后在这段代码中,以下 div 应该将 target 添加到它们的类名中:

  • main_child_2
  • main_child_4
  • main_child_5_child_2
  • main_child_6_child_2

什么 jQuery 代码可以实现这个?

最佳答案

怎么样

$("div").filter(function() {
    return $(this).children("ul li").length > 3;
}).addClass("target");

关于jquery - 需要 jQuery 代码来查找包含 ul 且元素超过 3 个的 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18984557/

相关文章:

html - 使用 flexbox Bootstrap 元素到底部

javascript - 如果我有两个选项的代码,单选按钮的结果将无法正常工作

javascript - 在 body 区域内单击时触发事件

javascript - 拖放选择元素(谷歌浏览器)

javascript - Jquery Plugin qTip2 这是在 Hypem.com 上使用的吗?

html - 定位多个元素,每个元素都拥有相同的类

jquery - jqueryui 模态对话框的 css

jquery - FullCalendar - 提取显示的事件

javascript - 为什么此动画不显示以阻止不起作用?

javascript - 如何在使用 Phantomjs 生成 HTML 时保留结束 img 标签?