如何检查所有表行中的所有ID?

时间:2015-05-04 02:00:36

标签: javascript jquery html

首先,我创建一个包含n行的表,每行包含一个复选框。我需要检查所有行中的所有ID。

<body>
    <table border='1' style='width:100%'>
            <tr id='1'><td>'hi'</td><td><input type='checkbox' /></td></tr>
            <tr id='2'><td>'hi'</td><td><input type='checkbox' /></td></tr>
            <tr id='3'><td>'hi'</td><td><input type='checkbox' /></td></tr>
            <tr id='4'><td>'hi'</td><td><input type='checkbox' /></td></tr>
    </table>
<button id='test'>Get Checked</button>
        </body>

这是我到目前为止所得到的:

<script>
$(document).ready(function() {
$('#test').click(function(){
var getID = $(':checkbox:checked').closest('tr').attr('id');
alert(getID);
});
});

</script>

但这只给了我一个身份证。如果我选择多行,我只会获得第一个选定的ID。此外,我需要存储在数组中选择的所有ID以供以后使用。

5 个答案:

答案 0 :(得分:1)

用户jQuery的each函数。

$(':checkbox:checked').each(function( index ) {
  var closestTr = $(this).closest('tr').attr('id');
  alert(closestTr);
});

答案 1 :(得分:1)

var getID = $(':checkbox:checked').closest('tr').attr('id');

应该是:

var getID = $('.checkbox:checked').closest('tr').attr('id');

答案 2 :(得分:0)

在jQuery中,使用选择器默认值为第一个。所以,我们应该使用each获取所有选择器元素。

<script>
   $(document).ready(function() {
       $('#test').click(function(){
            var arrId = [];
            $(':checkbox:checked').each(function(){
                 var id = $(this).closest('tr').attr('id');
                 arrId.push(id);
            })
            console.log(arrId);
       });
   });
</script>

答案 3 :(得分:0)

fiddle中尝试这样的演示。确保在每个输入复选框之前添加open td

JS

$('#test').click(function(){
  var ids = $(':checkbox:checked').map(function() {
    var id = $(this).closest('tr').prop('id');
      alert(id);
      return id;
  }).get();
  alert(ids);
});  

HTML

<table border='1' style='width:100%'>
  <tr id='1'><td>'hi'</td><td><input type='checkbox' /></td></tr>
  <tr id='2'><td>'hi'</td><td><input type='checkbox' /></td></tr>
  <tr id='3'><td>'hi'</td><td><input type='checkbox' /></td></tr>
  <tr id='4'><td>'hi'</td><td><input type='checkbox' /></td></tr>
</table>
<button id='test'>Get Checked</button>

答案 4 :(得分:0)

将put和id放在你的桌子上:

 <table id="myTab" border='1' style='width:100%'>   

为避免在页面中显示其他复选框,请从表格中选择复选框,如:

var ids = [];
$('#mytab :checkbox:checked').each(function( index ) {
    var closestTr = $(this).closest('tr').attr('id');
    ids.push(closestTr);
});
alert(ids);