如果使用jQuery检查复选框,我有一些小问题。我有一张桌子,每行都有一个具有相同ID的复选框。
<td><input id="hp" type="checkbox" aria-label="..." checked></td>
这是jQuery函数:
$('#hp').bind("click", function() {
if($(this).prop('checked')) {
alert("check");
} else {
alert ("unchecked!");
}
});
但它只适用于第一行表。有什么建议吗?
答案 0 :(得分:1)
尝试
<td><input id="hp" type="checkbox" class='checkBoxClass'></td>
和
$('.checkBoxClass').bind("click", function() {
if($(this).prop('checked')) {
alert("check");
} else {
alert ("unchecked!");
}
});
答案 1 :(得分:1)
更改您的代码如下:
HTML代码
<td><input id="hp" class="hp" name="hp[]" type="checkbox" aria-label="..." checked></td>
的Javascript
$('.hp').bind("click", function() {
if($(this).prop('checked')) {
alert("check");
} else {
alert ("unchecked!");
}
});
我希望它适合你。
答案 2 :(得分:0)
怎么样?
$('input[type="checkbox"]').bind("click", function() {
if(this.checked) {
alert("check");
} else {
alert ("unchecked!");
}
});
答案 3 :(得分:0)
因此,ID 必须是唯一的,如果在多个元素上使用#hp
,jQuery / JS将只返回第一个元素!
使用 .
类代替:
<强> jsBin demo 强>
<input class="hp" type="checkbox" aria-label="..." checked>
$(".hp").on("change", function(){
alert(this.checked? "YEY!" : "Not checked :( ");
});
答案 4 :(得分:-2)
除了为每个复选框提供相同的id
之外别无其他方法,请转到以下代码:
$('body #hp').bind("click", function() {
if($(this).prop('checked')) {
alert("check");
} else {
alert ("unchecked!");
}
});
此处$('body #hp')
会为您提供与id
hp
的所有元素