#javascript #jquery
Вопрос:
Как я могу хранить в массиве массивов в JavaScript / jQuery значения каждой выбранной строки таблицы.
Событием для прослушивания будет (я думаю) нажатие кнопки «Показать выбранное».
Например, в JS у нас был бы массив, подобный этому:
result = []
result[0] = row1
result[0][1] = Gene value for row1 (Gene1)
result[0][2] = Variant value for row1 (Variant1)
result[0][7] = #5 value1 for row1
result[1] = row2
result[1][1] = Gene value for row2 (Gene2)
etc
...
Ответ №1:
Вы могли бы сделать это просто так:
$("#show-selected").click(function () {
var results =[];
$(".variants-table-tbody tr").each(function (index,item) {
if($(item).find('[name="select-item"]').prop("checked")){
results.push([
[$(item).find("td").eq(1).text()],
[$(item).find("td").eq(2).text()],
[$(item).find("td").eq(3).text()],
]);
}
});
console.log(results);
});
это позволит создать данные о проверенных строках в описанном вами формате.
видишь https://jsfiddle.net/y4deut3s/
Ответ №2:
С чем-то вроде этого:
$("#show-selected").click(function () {
var tr = $("tr");
var array1 = [];
tr.each(function(index1, trCurrent) {
var array2 = [];
var trChildrens = $(trCurrent).children();
if(($(trChildrens[0]).children()[0]).checked){
trChildrens.each(function(index2, trChildrensCurrent) {
var innerHtml = $(trChildrensCurrent).html();
array2.push(innerHtml);
});
array1.push(array2);
}
});
console.log(array1);
});
тест: