jQuery – 计数列表不含div的子类

前端之家收集整理的这篇文章主要介绍了jQuery – 计数列表不含div的子类前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个简单的js脚本来计算一个无序列表的子数.我正在尝试更改脚本,因此它不会计数任何包含具有类“hiddenItem”的div的子元素(li).这是列表和js.
<ul id="dlist" class="sortable">
        <li id="listItem_000002">
            <div>
                <div><a class="itemCollapse"></a>
                </div>Item 2</div>
        </li>
        <li id="listItem_000003">
            <div>
                <div><a class="itemCollapse"></a>
                </div>Item 3</div>
        </li>
        <li id="listItem_000009">
            <div>
                <div><a class="itemCollapse"></a>
                </div>Item 9</div>
        </li>
        <li id="listItem_000012">
            <div class="hiddenItem">
                <div><a class="itemCollapse"></a>
                </div>Item 12 (Hidden)</div>
        </li>
    </ul>
    <br>
    <br>

    <a class="count">Count</a>

.

$(".count").click(function () {
        var tcount = $("#dlist").children("li").length;
        alert(tcount);
    });

在这个例子中,js警告有4个项目.但是,我正在尝试更改代码,以便它提醒3个项目,因为最后一个列表项包含具有类“hiddenItem”的div.我试图使用.filter()以及其他一些横向方法,没有运气.任何人都有更好的主意?

这是一个工作小提琴:http://jsfiddle.net/YeDdq/1/

任何帮助将不胜感激.谢谢!

解决方法

你可以不使用方法.
var tcount = $("#dlist > li").not(':has(div.hiddenItem)').length;

或过滤方式:

var tcount = $("#dlist > li").filter(function(){
                 return $('div.hiddenItem',this).length === 0;
             }).length;
原文链接:https://www.f2er.com/jquery/175911.html

猜你在找的jQuery相关文章