2016-02-17 2 views
0

У меня есть форма для заказа деталей (id, descr, amount). Но один заказ может состоять из нескольких частей, поэтому я хочу создать кнопку, которая динамически добавляет дополнительные поля с уникальными именами/идентификаторами, поэтому я могу получить к ним доступ в PHP.Как добавить инкрементный счетчик к имени каждого нового элемента

В идеале я хочу добавить 1, 2, 3 и т. Д. В конец имени добавленного элемента. Проблема в том, что я не сейчас, как выбрать конкретный добавленный элемент.

Я немного упростил код, потому что, если у меня есть решение для этих полей, другие могут быть исправлены одинаково.

var i = 0; 

$('#addfields').click(function(){ 
    $('#tablerow').after('<tr><td>Article id</td>' + 
        '<td><input class=article_id type=text></td></tr>'); 

    $('.article_id').each(function(){ 
     $(this).attr('name', 'articleid' + i); 
     i++; 
    }); 

ответ

2

jQuery.each вызывает функцию обратного вызова с параметром index. Используй это.

$('.article_id').each(function(index, value) { 
    this.name = 'articleid' + index; 
}); 
+0

Спасибо! Я знал, что это будет легко, мне просто не хватает опыта jQuery. – Bart

+1

@Bart Вам не хватало много ...;) – Neil

0

Вы можете так же легко сделать это без jQuery (что было бы немного быстрее).

var articles = document.getElementsByClassName("article_id"); 

for (var i=0; i<articles.length; i++) { 
    articles[i].name = "articleid" + (i+1); 
}