用 jquery 缩写一次写几个属性

Abbreviate the writing of several attributes at once with jquery

我有一些带有属性 class="item" 的输入标签,我想添加一个唯一的 id 属性和唯一的属性名称。这是我使用的代码:

$( ".item" ).attr( "id", function( index ) {
return "item" + (index+1);
}).attr( "name", function( index ) {
return "item" + (index+1);
}).attr( "value", function( index ) {
return "item" + (index+1);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form id="groupitem">
<input type="text" class="item"/>
<input type="text" class="item"/>
<input type="text" class="item"/>
</form>

我对上面的代码没有问题,但我只是想问一下是否有其他方法可以编写比我上面写的代码更好或更短的jquery? 也许有人可以提供一个想法

您可以一次完成所有操作,也许使用 each 循环。它甚至非常容易维护并且易于阅读 imo。

$(".item").each(function(i) {
    $(this).attr({
        id    : "item" + (++i),
        name  : "item" + i,
        value : "item" + i,
    });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<form id="groupitem">
  <input type="text" class="item"/>
  <input type="text" class="item"/>
  <input type="text" class="item"/>
</form>