Пожалуйста, посмотрите здесь: (Обновлено) DEMO
Я пытаюсь создать запятую ,
а pipe |
разделенная строка значений элементов управления в каждой строке таблицы. Каждое значение управления разделяется запятой и каждой строкой, разделенной трубой, которую я делаю, используя этот кусок кода.
$("#btnsave").click(function () {
var result = "";
$("#field tr").each(function (iRow, row) {
$("td input", row).each(function (iField, field) {
result += $(field).val() + ",";
});
result = result + "|";
});
alert(result);
});
Проблема с этим кодом заключается в том, что он исключает DropDown. А также я хотел бы включить номер строки, который показан в первом столбце. Хотя я использую этот код прямо сейчас, я не очень понимаю его. Может кто-нибудь объяснить этот код мне, я нооб в JQuery.
Добавление выпадающих select
, по которым, я думаю, вы имеете в виду элементы select
, довольно просто, просто изменив вместо этого $('td input', row)
на $('td input, td select', row)
.
Я создал пример (http://jsbin.com/garohure/1/edit), который также включает в себя первый столбец на выходе:
function tableToString(){
var rows = [];
$("#field tr").each(function (iRow, row) {
var cells = [],
firstTd = $(row).find('td').first();
cells.push( firstTd.text() );
$(row).find('input,select').each(function (iField, field) {
cells.push( $(field).val() );
});
rows.push( cells.join('|') );
});
return rows.join(',<br>');
}
Моя функция немного отличается, поскольку я пытался сделать ее более понятной для того, что происходит. Я также собираю все значения в массиве сначала, присоединяю его к строке и затем сохраняю.
Логика здесь такова:
TR
в таблице и пропустить ихBtw, имея это как дополнительную функцию, а не делает все это в вашем обратном вызове, позволяет легко выполнить его из другого места (например, консоль для тестирования).
.val
если я хочу, чтобы значение.text()
вместо выпадающего.val