2016-03-17 3 views
1

У меня есть таблица html с n количеством строк. Первый столбец каждой строки является переключателем. Я хочу достичь следующих функций:Получить значение строки в виде массива при щелчке первого столбца

Когда пользователь нажимает на переключатель (первый столбец), я хочу получить соответствующие значения строк в виде массива.

Спасибо

+0

вы можете получить данные с помощью функций jquery –

+0

Что вы пробовали? добавьте некоторый код HTML, по крайней мере, в вопрос, если вам нужна дополнительная помощь –

+0

Я не знаю, что этот метод прав, или нет, но я могу добиться того, чего хочу. $ ("# table_id tbody"). On ('click', 'tr td: first-child', function (e) { // все значение td с запятой seprated var tdValue = $ (this) .children() .closest ("tr"). children ('td'). map (function (index, val) { return $ (this) .text(); }). toArray(); }); –

ответ

1

Я думаю, что вам это нужно ..

$("#table_id tbody").on('click', 'tr td:first-child', function (e) { 
    var data = []; 
    $(this).parent('tr').find('td:not(:first)').map(function(index, val) { 
     data.push($(val).html()); 
    })); 
}); 
+0

Примечание: здесь я использовал bind для первого td из tr, а не для флажка. –

0

Например HTML код:

<table id="data"> 
    <tr> 
     <td><input name="check" type="radio" class="radiobtn" /></td> 
     <td>Data 1</td> 
     <td>Data 2</td> 
     <td>Data 2</td> 
     <td>Data 4</td> 
    </tr> 
    <tr> 
     <td><input name="check" type="radio" class="radiobtn" /></td> 
     <td>Data 5</td> 
     <td>Data 6</td> 
     <td>Data 7</td> 
     <td>Data 8</td> 
    </tr> 
    <tr> 
     <td><input name="check" type="radio" class="radiobtn" /></td> 
     <td>Data 9</td> 
     <td>Data 10</td> 
     <td>Data 11</td> 
     <td>Data 12</td> 
    </tr> 
    <tr> 
     <td><input name="check" type="radio" class="radiobtn" /></td> 
     <td>Data 13</td> 
     <td>Data 14</td> 
     <td>Data 15</td> 
     <td>Data 16</td> 
    </tr> 
</table> 

Javascript (Jquery):

$(document).ready(function(){ 
    $(".radiobtn").click(function(){ 
     var tds = $(this).closest('tr').children('td'); 
    console.log(tds); 
     var dataArray =[]; 
     for(i=1;i < tds.length;i++) 
      dataArray.push($(tds[i]).html()); 
     //Use dataArray here 
     $("#console").html(JSON.stringify(dataArray)); 
    }); 
}); 

Демо: http://codepen.io/ivoglent/pen/rejyxb

Смежные вопросы