jQuery为类添加索引编号

时间:2014-02-23 17:22:14

标签: javascript jquery html arrays attr

我的网站上有很多链接,所有链接都是“投资组合点击”。我现在想要为它们添加一个“索引号”,所以它看起来像:

<a class="portfolio-click" index_number="1">...</a>
<a class="portfolio-click" index_number="2">...</a>

有没有一种简单的方法可以让jQuery这样做,所以我可以在不干扰索引顺序的情况下移动链接?

我试过了:

    $( ".portfolio-click" ).attr( "index_number", function() {
    for (var i = 0; i < max_portfolio_number; i++) {
        return i;
    }
  });

但这没效果。

5 个答案:

答案 0 :(得分:1)

不确定为什么需要它,但使用有效的数据属性可以这样做:

$( ".portfolio-click" ).attr( "data-index", function(i) {
    return i;
});

FIDDLE

您始终可以使用jQuery方法按索引访问元素,如

$( ".portfolio-click" ).eq(4); // gets the fifth (zero based)

所以你不需要那个属性吗?

答案 1 :(得分:1)

您可以使用.each()

$(".portfolio-click" ).each(function(i) {
    $(this).attr("index-number",i);
});

答案 2 :(得分:0)

使用.attr( attributeName, value )

Fiddle Demo

$( ".portfolio-click" ).attr( "index_number", function(i) {
    return ++i; //index starts from so add 1 to it before return
});

<小时/> 更好地使用.data作为自定义属性

Fiddle Demo

$(".portfolio-click").attr("data-index_number", function (i) {
    return ++i;
});

答案 3 :(得分:0)

您可以使用jQuery的.each()函数:

$('a.portfolio-click').each(function(i) {
    $(this).attr("index-number",i);
});

预览:http://jsfiddle.net/rSGML/1/

答案 4 :(得分:0)

var i = 0;
$(".portfolio-click").each(function(){
    $(this).attr('index_number', i++);
});