在div中查找具有特定类的元素数

时间:2014-07-08 09:02:33

标签: jquery

如何使用“已选择”类计算包含div中的所有元素?

我的Jquery尝试:

$('.list').click(function(){
   check_no = $(this).closest("div").find('.selected').length;
   alert(check_no);
)};

也试过

check_no = $(this).closest("div").children('.selected').length;

但它总是说0。

HTML

   <div id=1>
        <ul>
            <li class="list all">ALL</li>
            <li class="list selected">1</li>
            <li class="list">2</li>
        </ul>
        <ul>
            <li class="list selected">3</li>
            <li class="list selected">4</li>
        </ul>
        <ul>
            <li class="list">5</li>
            <li class="list">6</li>
        </ul>
    </div>
    <div id=2>
        <ul>
            <li class="list all">ALL</li>
            <li class="list selected">1</li>
            <li class="list">2</li>
        </ul>
        <ul>
            <li class="list selected">3</li>
            <li class="list">4</li>
        </ul>
        <ul>
            <li class="list">5</li>
            <li class="list">6</li>
        </ul>
    </div>

因此,如果我点击div id 1中的班级列表,我想找到所选班级的李号。

4 个答案:

答案 0 :(得分:2)

你的jquery

$('.list').on('click',function(){
    var check_no=$(this).closest("div").find('.selected').length;
   alert(check_no);
});

DEMO

如果你只想找到 li选择了班级那么你的jquery就是

$('.list').on('click',function(){
    var check_no=$(this).closest("div").find('li.selected').length;
   alert(check_no);
});

DEMO2

答案 1 :(得分:1)

我认为你可能有一些相互矛盾的代码,或者我没有正确理解。这对我来说很好:

http://jsfiddle.net/UkD69/

我看到你更新了你的问题。你在那里的代码工作......我想你可能没有把它放在domready函数中。请参阅http://jsfiddle.net/UkD69/4/并注意周围的$(function(){ [code] });

$(function(){

    $("li").on("click", function(){

        check_no = $(this).closest("div").find('.selected').length;
        alert(check_no);

    });

});

或者,您是否希望在没有活动的情况下运行? $(this)指的是附加到事件处理程序并被函数捕获的元素(与我的示例一样)。

这会检查每个div的{​​{1}}类的数量:

http://jsfiddle.net/UkD69/1/

答案 2 :(得分:0)

你把括号弄糊涂了。所以它不适用于你的上下文

更改

$('.list').click(function(){
   check_no = $(this).closest("div").find('.selected').length;
   alert(check_no);
)};

$('.list').click(function(){
   check_no = $(this).closest("div").find('.selected').length;
   alert(check_no);
});

答案 3 :(得分:0)

你的代码应该没问题。

    $('.list').on('click',function(){
       var check_no = $(this).closest("div").find('.selected').length;
       alert(check_no);
    });

试试jsfiddle