Вы можете просто выбрать элемент input
и select
следующим образом:
Старый код:
$("#comTable tr:eq(0)").clone().find("input").each(function() {
// creates array of ids if the user wants to add more than 1 row so it is N[1], etc
$(this).val('').attr('id', function(_, id) {
return id + 'N' + '[' + i + ']'
});
$(this).val('').attr('name', function(_, name) {
return name + 'N' + '[' + i + ']'
});
}).end().appendTo("#comTable");
$("#comTable tr:eq(0)").clone().find("select").each(function() {
// creates array of ids if the user wants to add more than 1 row so it is N[1], etc
$(this).val('').attr('id', function(_, id) {
return id + 'N' + '[' + i + ']'
});
$(this).val('').attr('name', function(_, name) {
return name + 'N' + '[' + i + ']'
});
}).end().appendTo("#comTable");
Новый код:
$("#comTable tr:eq(0)").clone().find("input, select").each(function() {
// creates array of ids if the user wants to add more than 1 row so it is N[1], etc
$(this).val('').attr('id', function(_, id) {
return id + 'N' + '[' + i + ']'
});
$(this).val('').attr('name', function(_, name) {
return name + 'N' + '[' + i + ']'
});
}).end().appendTo("#comTable");
Обратите внимание на селектор "input, select"
.
Редактировать
Другой способ, которым вы могли бы сделать это, если вы хотите обрабатывать select
по-разному, это связать его по-другому:
$("#comTable tr:eq(0)")
.clone()
.find("input")
.each(function() {
// creates array of ids if the user wants to add more than 1 row so it is N[1], etc
$(this).val('').attr('id', function(_, id) {
return id + 'N' + '[' + i + ']'
});
$(this).val('').attr('name', function(_, name) {
return name + 'N' + '[' + i + ']'
});
})
.end() //End .find("input")
.find("select")
.each(function() {
// creates array of ids if the user wants to add more than 1 row so it is N[1], etc
$(this).val('').attr('id', function(_, id) {
return id + 'N' + '[' + i + ']'
});
$(this).val('').attr('name', function(_, name) {
return name + 'N' + '[' + i + ']'
});
})
.end() //End .find("select")
.appendTo("#comTable");
i++;
Этот способ удаляет лишний клон и снова запускает .find
для вновь клонированного элемента DOM.