Как получить и сохранить значения определенной строки в таблице с помощью JavaScript / jQuery

#javascript #jquery

Вопрос:

Как я могу хранить в массиве массивов в JavaScript / jQuery значения каждой выбранной строки таблицы.

JSFiddle

Событием для прослушивания будет (я думаю) нажатие кнопки «Показать выбранное».

Например, в 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);
    });
 

тест:

изображение