【问题标题】:jQuery add index numbering to a classjQuery为类添加索引编号
【发布时间】:2014-02-23 17:22:13
【问题描述】:

我的网站上有很多链接,都属于“portfolio-click”类。我现在想为它们添加一个“索引号”,所以它看起来像:

<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;
    }
  });

但这没有用。

【问题讨论】:

标签: javascript jquery html arrays attr


【解决方案1】:

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

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

FIDDLE

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

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

所以你不需要一个属性?

【讨论】:

  • 你能解释一下,为什么是 "function(i) { return i;}" 而不仅仅是 "i"?
  • 是一个回调,返回什么都设置为属性的值,第一个参数是索引,如i
  • 这是因为我有一个投资组合,当达到最后一个索引号时,我不想删除“下一个”箭头;)如果您想查看它:hersing.dk/canvas/jq4跨度>
【解决方案2】:

您可以使用.each()

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

【讨论】:

    【解决方案3】:
    var i = 0;
    $(".portfolio-click").each(function(){
        $(this).attr('index_number', i++);
    });
    

    【讨论】:

      【解决方案4】:

      使用.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;
      });
      

      【讨论】:

        【解决方案5】:

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

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-12-23
          • 1970-01-01
          • 1970-01-01
          • 2017-01-12
          • 1970-01-01
          相关资源
          最近更新 更多