【问题标题】:set name attribute with increasing number in jquery在jquery中设置名称属性随着数量的增加
【发布时间】:2013-03-22 17:11:56
【问题描述】:

我在 Jquery 中有以下代码:

.find("input").attr('name', + cloneCount++)

我想要的是 name 属性的值具有它的当前值 + 随着 cloneCount var 值的增加。

有什么想法可以做到这一点吗?

================= 更新

感谢大家的快速回复,但我意识到我没有提供足够的代码:

    var cloneCount = 1;
   $(".button").click(function(){

      $('#id')
          .clone()
          .attr('id', 'id'+ cloneCount++)
          .insertAfter($('[id^=id]:last'))
         .find("input").attr('name', parseInt(attr('name')) + cloneCount++)
   }); 
});

我想要的是,当一个 div 被克隆时,所有输入字段都会为 name 属性获得不同的值。输入的数量是可变的。所以假设我们有一个带有 name="example" 的输入,克隆版本应该得到 name="example2" 等等。

【问题讨论】:

    标签: jquery input attributes


    【解决方案1】:

    试试这个:

    var myInput = ....find("input");
    myInput.attr('name', parseInt(myInput.attr('name')) + cloneCount++)
    

    【讨论】:

      【解决方案2】:

      .attr() 的第二个参数可以接受一个函数,该函数可以返回您需要应用于属性的值。

      .find('input').attr('name', function() {
          return parseInt($(this).attr('name'), 10) + 1;
      });
      

      【讨论】:

      • 谢谢,但是当我检查 name 属性的值时,它返回一个错误(NaN)
      【解决方案3】:

      对于 (i=0;i

      cloneCount++;

      .find("input").attr('name',cloneCount)

      }

      【讨论】:

        【解决方案4】:

        试一试

        var cloneCount = 1;
        $('input').each(function() {
          $(this).attr('name', cloneCount)
          cloneCount ++;
        });
        

        【讨论】:

        • 谢谢,但是现在 name 属性的值是 1,2,3 等等......我想要的是这个值得到它的原始值 + cloneCount var 的值。所以名称,名称1,名称2等(请参阅我的问题中的更新)
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-04-03
        • 2021-06-28
        • 1970-01-01
        相关资源
        最近更新 更多