Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在jQuery中按类名获取可见元素的动态计数_Javascript_Jquery - Fatal编程技术网

Javascript 在jQuery中按类名获取可见元素的动态计数

Javascript 在jQuery中按类名获取可见元素的动态计数,javascript,jquery,Javascript,Jquery,在链接的fiddle中,我在jQuery中设置了一个复选框过滤器,以按公司名称和职务筛选人员。我想知道在显示/隐藏元素时动态变化的可见元素的总数。在fiddle中,我突出显示了元素总数,但当选中/取消选中复选框时,它当前不会改变。我发现了几个类似的问题,但我还没有找到一种方法将这些建议实现到我的代码中,以使计数动态。任何帮助都将不胜感激 以下是我正在使用的jQuery代码: $(function() { $('.peoples, .companies').on('cli

在链接的fiddle中,我在jQuery中设置了一个复选框过滤器,以按公司名称和职务筛选人员。我想知道在显示/隐藏元素时动态变化的可见元素的总数。在fiddle中,我突出显示了元素总数,但当选中/取消选中复选框时,它当前不会改变。我发现了几个类似的问题,但我还没有找到一种方法将这些建议实现到我的代码中,以使计数动态。任何帮助都将不胜感激

以下是我正在使用的jQuery代码:

    $(function() {
        $('.peoples, .companies').on('click', function() {
            var checkedPeoples = $('.peoples:checked');
            var checkedCompanies = $('.companies:checked');
            if (checkedPeoples.length || checkedCompanies.length) {
                if (checkedCompanies.length === 0) {
                    $('.row > div').hide();
                    $.each(checkedPeoples, function() {
                        var prdId = $(this).attr('data-id');
                        $('.row > div[data-category="' + prdId + '"]').show();
                    });
                } else if (checkedPeoples.length === 0) {
                    $('.row > div').hide();
                    $.each(checkedCompanies, function() {
                        var brandId = $(this).attr('data-id');
                        $('.row > div[company="' + brandId + '"]').show();
                    });
                } else {
                    $('.row > div').hide();
                    $.each(checkedPeoples, function() {
                        var prdId = $(this).attr('data-id');
                        $.each(checkedCompanies, function() {
                            var brandId = $(this).attr('data-id');
                            $('.row > div[data-category="' + prdId + '"][company="' + brandId + '"]').show();
                        });
                    });
                }
            } else {
                $('.row > div').show();
            }
        });
    });

// Total count of elements (visible and invisible)...
var x = $('.people:visible').length;
$('#count').append( x );

这就像计算可见元素和更改事件处理程序底部的HTML一样简单

$('#count').html( $('.people:visible').length );

只需计算可见元素并更改事件处理程序底部的HTML即可

$('#count').html( $('.people:visible').length );

只需计算可见元素并更改事件处理程序底部的HTML即可

$('#count').html( $('.people:visible').length );

只需计算可见元素并更改事件处理程序底部的HTML即可

$('#count').html( $('.people:visible').length );

你有两门“人物”课,一门课的结尾是“s”。。。我想这是打字错误吧?(吹毛求疵的“人”已经是复数了,不需要“s”;-)至于动态问题,复选框上的简单更改事件处理程序(和/或显示/隐藏它们的任何东西)可以快速重新计算。你有两个“人”类,一个在末尾有一个“s”。。。我想这是打字错误吧?(吹毛求疵的“人”已经是复数了,不需要“s”;-)至于动态问题,复选框上的简单更改事件处理程序(和/或显示/隐藏它们的任何东西)可以快速重新计算。你有两个“人”类,一个在末尾有一个“s”。。。我想这是打字错误吧?(吹毛求疵的“人”已经是复数了,不需要“s”;-)至于动态问题,复选框上的简单更改事件处理程序(和/或显示/隐藏它们的任何东西)可以快速重新计算。你有两个“人”类,一个在末尾有一个“s”。。。我想这是打字错误吧?(吹毛求疵的“人”已经是复数了,不需要“s”;-)对于动态问题,复选框上的简单更改事件处理程序(和/或显示/隐藏它们的任何内容)可以快速重新计算。这非常完美。感谢您提供这个快速简单的解决方案。这是完美的。感谢您提供这个快速简单的解决方案。这是完美的。感谢您提供这个快速简单的解决方案。这是完美的。感谢您提供此快速简单的解决方案。