首先,我创建一个包含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以供以后使用。
答案 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);