Я создал HTML-таблицу программно с помощью javascript, аналогично приведенному ниже коду:
function AddRow() {
var rowcount = $('#tabBillDet tr').length + 1;
$('#tabDet tr:last').after("<tr><td><input type='text' id='txtItemCode' style='width:80px' /> </td></tr>");
Я хочу получить значения, введенные в эти текстовые поля.
Я попробовал следующее:
var tab = $('#tabDet tr');
for (var i = 0; i < tab.length; i++) {
var group = $(tab[i].cells[0].children[0]).val();
var ItemCode = $(tab[i].cells[1].children[0]).val();
}
Я попытался сделать уникальный идентификатор, предоставив каждому текстовому блоку отдельный идентификатор в зависимости от количества строк.
Но это не работает. Как я могу получить эти ценности?
Похоже, вы назначаете один и тот же идентификатор нескольким элементам. Идентификаторы уникальны, поскольку они однозначно идентифицируют элементы в DOM. Вместо этого сделайте ID классом:
$('#tabDet tr:last').after("<tr><td><input type='text' class='txtItemCode' style='width:80px' /> </td></tr>");
И тогда вы можете получить такие значения:
$('#tabDet tr .txtItemCode').each(function(){
var ItemCode = $(this).val();
//Do something with ItemCode.
});
Попробуй это,
$('#tabBillDet tr').each(function() {
var ItemCode = $("#txtItemCode", $(this)).val();
});
ваш var перезаписывается на каждой итерации цикла for, объявляет команду var group и itemcode раньше в качестве массива и просто помещает значения в ваши массивы
var tab = $('#tabDet tr');
var group = [], ItemCode= [];
for (var i = 0; i < tab.length; i++) {
group.push($(tab[i].cells[0].children[0]).val());
ItemCode.push($(tab[i].cells[1].children[0]).val());
}
но что вы хотите делать с этими значениями? почему вы не работаете с id?
var group = ..
переопределяет себя на каждой итерации цикла