jQuery 如何将类添加到特定的 div

标签 jquery html filter each addclass

有没有一种方法可以通过 jquery 向所有包含 ul 且只有一个列表元素(如 div.filter_7)的 div 添加一个类。使用 jQuery,我需要遍历每个 div.list-container 并计算列表元素。如果列表元素小于 2,则 jquery 应该附加一个类。

<div class="filter_group">
<div class="filter-holder filter_1">
<h4>Test</h4>
<div class="list-container">
    <ul class="list filter">
        <li class="list_id1">list_id1</li>
        <li class="list_id2">list_id2</li>
        <li class="list_id3">list_id3</li>
        <li class="list_id4">list_id4</li>
        <li class="list_id5">list_id5</li>
    </ul>
</div>
</div>
<div class="filter-holder filter_2">
<h4>Test</h4>
<div class="list-container">
    <ul class="list filter">
        <li class="list_id11">list_id11</li>
        <li class="list_id22">list_id22</li>
        <li class="list_id33">list_id33</li>
        <li class="list_id44">list_id44</li>
        <li class="list_id55">list_id55</li>
    </ul>
</div>
</div>
<div class="filter-holder filter_6">
<h4>Test</h4>
<div class="list-container">
    <ul class="list filter">
        <li class="list_id111">list_id111</li>
        <li class="list_id222">list_id222</li>
        <li class="list_id555">list_id555</li>
    </ul>
</div>
</div>
<div class="filter-holder filter_7">
<h4>Test</h4>
<div class="list-container">
    <ul class="list filter">
        <li class="list_id1111">list_id1111</li>
        <li class="list_id2221">list_id2222</li>
    </ul>
</div>
</div>

这是我到目前为止用 jquery 所做的,但它似乎是错误的:

    var total = 0;
$(document).ready(function() {
    $('.list-container').each(function(idx, item){
      total = $(".list-container>ul").size();
          if (6 >= total) {
           $('.list-container').parent('div').addClass('noshow');
    } else {
    alert(total);
    }              
    });
});

最佳答案

您不需要过滤或每个...

您可以使用 jQuery.has()结合 :only-child。从this jsFiddle可以看出演示和代码如下。

jQuery("div.list-container").has("li:only-child").addClass("noshow");

与使用过滤器相比,阅读起来方式更清晰。您可以稍微修改 has 以使其更具体。

关于jQuery 如何将类添加到特定的 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9807723/

相关文章:

javascript - 抵消 bootstrap/select2 渲染延迟?

jquery - 用 meteorJS 中的服务数据填充 mongodb

javascript - 如何将javascript html dom文档存储到本地存储

html - 如何在输入字段后添加字体图标?

javascript - 在 ng-view 页面中创建 Controller

javascript - jquery 对话框中的 html5 视频 - 第一次点击时 JavaScript 不会播放

javascript - Google Plus One Button - 如何添加回调?

html - 模糊背景图像缩小它,如何在不缩小的情况下模糊?

javascript - 如何在 SuiteScript 2.0 版本中使用 NVAL2 函数使用过滤条件作为公式日期字段创建搜索

xml - 使用 XSLT 1 根据另一个 xml 过滤 XML