jQuery每个计数问题

时间:2013-09-10 11:32:11

标签: jquery

我试图在每个人的'dt'换行中显示计数,但此刻它在'dt'换行内外的所有人之间显示计数。我附上了一个丝网印刷品。如果有人可以就此修复建议我,我会非常感激。

 $('.order_table_item .variation dt').each(function () {
        if ($(this).text() == 'Candidate Name:') {
            $(this).next().show();
            $(this).before("<div class='count'></div>");
            $(this).next().after("<div class='clear'></div>");

        } else {
            $(this).hide();
        }
    });

    $('.variation .count').each(function(i) {
            $(this).append((i+1));
    });

enter image description here

我试过了,

$('.order_table_item').each(function(i,e){


    $('.variation .count').each(function(i) {
            $(this).append((i+1));
    });

});

现在它的数字增加了一倍,

enter image description here

我的html的简化版本,

  <table class="shop_table order_details">
    <tbody>
        <tr class="order_table_item">
            <td class="product-name"> 
                <dl class="variation">
                    <div class="count" style="border-top: 0px none;">11</div>
                    <dd style="display: block; border-top: 0px none;">Dave</dd>
                    <div class="clear"></div>
                </dl>
            </td>
        </tr>
        <tr class="order_table_item">
            <td class="product-name">
                <dl class="variation">
                    <div class="count">22</div>
                    <dd style="display: block;">JACK</dd>
                    <div class="clear"></div>
                    <div class="count">33</div>
                    <dd style="display: block;">JOHN</dd>
                </dl>
            </td>
        </tr>
    </tbody>
</table>

2 个答案:

答案 0 :(得分:1)

如果我理解正确:

DEMO: http://jsfiddle.net/7DxVJ/1/

JQuery的

$('.variation').each(function(x) {
    $(this).find('.count').each(function(i) {
        $(this).append(i+1);
    });
});

输出:

  

111戴夫

     

221 JACK

     

332约翰

答案 1 :(得分:0)

由于我不确切知道您的代码是什么样的,我有三个想法:

创意1:

$('.variation .count').each(function(i) {
  $(this).text(i+1);
});

创意2:由于“1”+ 1 = 11,尝试解析i使其变为int而不是字符串。

$('.variation .count').each(function(i) {
  $(this).append(parseint(i)+1);
});

创意3:

$('.variation .count').each(function(index) { //i is already taken, better to use another variable here.
  $(this).text(index+1);
});

创意4:因为你在每个循环中,我错过了,你可能想要遍历每个.count,而不是每次都循环。

$('.order_table_item').each(function(i,e){
  $(this).find('.variation .count').each(function(index) { //use $(this) to loop every .count inside .order_table_item.
    $(this).text(index+1);
  });
});

See working fiddle