对页面上所有相同类型的类进行编号

时间:2014-05-01 12:54:37

标签: javascript jquery

让我们假设我们有以下代码:

<a class="addproduct 151">product info</a>
<a class="addproduct 151">product info</a>
<a class="addproduct 151">product info</a>
<a class="addproduct 151">product info</a>
<a class="addproduct 151">product info</a>

我希望能够计算页面中同一个类的数量。然后在点击特定的一个时,它告诉我它是哪一个......所以...如果我点击第三个,它将打印一个&#34; 3&#34;到控制台。

到目前为止,我已经获得了此代码:

$("addproduct 151").each(function(index) {
  $(this).addClass('number' + index);
});

3 个答案:

答案 0 :(得分:3)

您可以使用lengthindex来获取这些数字

var elems = $(".addproduct.151")

elems.on('click', function() {

    var total    = elems.length;
    var this_one = elems.index(this);

});

FIDDLE

答案 1 :(得分:0)

如果有父母,请使用index()

$('#parentDiv a').on('click',function(){
    var thisNumber = $(this).index();
    console.log(thisNumber);
});

http://jsfiddle.net/XSk98/

答案 2 :(得分:0)

要回答你的问题,因为它最初的措辞“如果我点击第3个”,我将其解释为页面上任何位置的第3个元素,无论是否为父母:

$('.product').on('click', function(e) {
  var products = $('.product').toArray();
  var id = products.indexOf(this);
  console.log(id);
})

http://jsfiddle.net/r4NJT/1/

注意:索引从0开始,因此如果要打印出“3”,则必须打印索引+ 1;