2016-08-24 1 views
1

У меня есть тег ввода с атрибутом class="item", и я хотел бы добавить уникальный атрибут id и уникальное имя атрибута. Это код, который я использовал:Сокращение написания нескольких атрибутов сразу с помощью jquery

$(".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 лучше или короче код, который я написал выше? Может быть, кто-то может дать идею

ответ

0

Вы можете сделать все, что угодно, всего за одно действие, может быть, с помощью each loop. Это даже очень легко поддерживать и хорошо читать 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>

+0

Да, спасибо @eisbehr на ваших идеях –

+0

Вы долгожданная, @AndesRizkyNugroho! – eisbehr

+0

Да, это то, что вы сказали, было правдой @eisbehr. Так получилось проще и эффективнее. Мне также не нужно добавлять переменную –

Смежные вопросы