根据复选框

时间:2018-02-08 08:37:10

标签: javascript jquery

我有一个表格,如下面的代码。

<table name="table1">
<tr>
    <td><input name="checking" type="checkbox"></td>
    <td><input class="send_data" type="hidden" value="1">a</td>
    <td>b</td>
    <td><input class="send_data" type="hidden" value="2">c</td>
    <td>d</td>
</tr>
<tr>
    <td><input name="checking" type="checkbox"></td>
    <td>e</td>
    <td>f</td>
    <td><input class="send_data" type="hidden" value="3">g</td>
    <td>h</td>
</tr>
<tr>
    <td><input name="checking" type="checkbox"></td>
    <td><input class="send_data" type="hidden" value="4">i</td>
    <td>j</td>
    <td><input class="send_data" type="hidden" value="5">k</td>
    <td><input class="send_data" type="hidden" value="6">l</td>
</tr>
</table>
<button onclick="button()"></button>

<script>
function button(){
  var selected = [];
  /*selected.push($(".send_data").val());*/

  alert(selected);
}
</script>

现在,我想采取一些行动:
我选了一些复选框并检查了 2.对于&#34; tr&#34;选中哪个复选框,我将获得该&#34; tr&#34;的所有输入值(class =&#34; send_data&#34;) 3.将所有值推入&#34;选择&#34;阵列
示例:如果选中第一个和第三个复选框,则选择= [1,2,4,5,6]
问题:如何使用jquery / javascript根据所选复选框获取所有数据。谢谢。

2 个答案:

答案 0 :(得分:1)

使用 jQuery &#39; s each()尝试以下内容:

&#13;
&#13;
$('#myBtn').click(function(){
  var selected = [];
  $('table tr').each(function(){
    var len = $(this).find('input[name="checking"]:checked').length;
    if(len > 0){
      $(this).find('.send_data').each (function() {
        selected.push(parseInt($(this).val()));
      });
    }
  });
  console.log(selected);
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table name="table1">
<tr>
    <td><input name="checking" type="checkbox"></td>
    <td><input class="send_data" type="hidden" value="1">a</td>
    <td>b</td>
    <td><input class="send_data" type="hidden" value="2">c</td>
    <td>d</td>
</tr>
<tr>
    <td><input name="checking" type="checkbox"></td>
    <td>e</td>
    <td>f</td>
    <td><input class="send_data" type="hidden" value="3">g</td>
    <td>h</td>
</tr>
<tr>
    <td><input name="checking" type="checkbox"></td>
    <td><input class="send_data" type="hidden" value="4">i</td>
    <td>j</td>
    <td><input class="send_data" type="hidden" value="5">k</td>
    <td><input class="send_data" type="hidden" value="6">l</td>
</tr>
</table>
<button id="myBtn">Generate Array</button>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

这是一个解决方案,它找到所有选中的复选框,并为每个选中的复选框从同一tr中的输入字段中获取值。

function button() {
    var checkboxes = document.querySelectorAll('[name=table1] input[type="checkbox"]');
    var result = [];
    for (var i = 0; i < checkboxes.length; i++) {
        var currentCheckbox = checkboxes[i];
        debugger;
        if (currentCheckbox.checked) {
            var
                inputs = currentCheckbox.parentNode.parentNode.querySelectorAll('input.send_data');
            for (var j = 0; j < inputs.length; j++) {
                result.push(inputs[j].getAttribute('value'));
            }
        }
    }
    console.log(result)
}

// [“3”,“4”,“5”,“6”]