在div中只显示每个类的一个元素并对它们进行计数

时间:2013-07-15 02:58:33

标签: jquery jquery-ui-sortable counting

我有一个名为“items”的div,在其中我有一些其他类与其他类(.itema,.itemb,.itemc等),我想只显示每个div的一个元素并计算它们(仅仍然在“项目”div上的那些。

我尝试使用以下代码对它们进行计数......但没有奏效:

var na = $('#items.itema').size();
$('.itema').append(' x ', na);

var nb = $('#items.itemb').size();
$('.itemb').append(' x ', nb);

我尝试失败:http://jsfiddle.net/g32gH/

3 个答案:

答案 0 :(得分:0)

#items.itema选择id itemsitema类的元素。您希望选择#items内的所有元素,其类为itema,这是使用后代组合子(空格)完成的:

#items .itema

演示:http://jsfiddle.net/g32gH/3/

答案 1 :(得分:0)

只需将代码更改为:

var na = $('#items .itema').size();
$('.itema').append(' x ', na);

var nb = $('#items .itemb').size();
$('.itemb').append(' x ', nb);

这是更新的jsFiddle:http://jsfiddle.net/leniel/g32gH/12/


现在我看到你正在使用jQuery UI Sortable组件。我想你想要这样的东西:

$("#items").sortable({
    connectWith: "#other"
});

$("#other").sortable({
    connectWith: "#items"
});   

$("#other, #items").on("sortreceive", function(event, ui)
{
    var na = $('#items .itema').size();
    $('.itema').html('itema X ' + na);

    var nb = $('#items .itemb').size();
    $('.itemb').html('itemb X ' + nb);  
});

这是JS Bin演示:http://jsbin.com/ixowed/1/edit

答案 2 :(得分:0)

$(document).ready(function(){
    var items = new Array();
    $('#items p').each(function(i,element){

      items[$(element).attr('class')]++;
    });
    $(items).each(function(clas,count){
      $(clas).hide();
      $(clas).first().show().append(' X '+count);
    });
 });