在我的网页上,我有32个复选框,所有复选框都带有ID“U1C1”,“U1C2”等......
我正在使用一段JQuery来显示ID为“U1C1_table”,“U1C2_table”等的表格的相应行...
for (var x = 1; x<33;x++) {
$('#U1C' + x).on("keyup change",function() {
if(this.checked) {
$('#U' + x + '_TABLE').show('');
}
else {
$('#U1_TABLE').hide('slow');
}
});
}
我使用了for循环来加快速度。
此代码不起作用,但是如果我将 second x更改为1,那么它将适用于第一行。这很奇怪,因为如果它不会评估相同的代码,为什么在
中找到第一个x$('#U1C' + x).on("keyup change",function() {
工作正常吗?
编辑:我的HTML
C1 <input type="checkbox" id="U1C1" value ="U1C1">
C2 <input type="checkbox" id="U1C2" value ="U1C2">
C3 <input type="checkbox" id="U1C3" value ="U1C3">
C4 <input type="checkbox" id="U1C4" value ="U1C4">
<tr id="U1_TABLE"><td>UNIT ONE</td><td>dropdown</td><td>textbox</td></tr>
<tr id="U1C1_TABLE"><td>UNIT ONE</td><td>dropdown</td><td>textbox</td></tr>
<tr id="U1C2_TABLE"><td>UNIT ONE</td><td>dropdown</td><td>textbox</td></tr>
答案 0 :(得分:1)
保存一些代码,并使用公共类以及自定义数据属性:
C1 <input type="checkbox" class="table-cb" data-number="1" id="U1C1" value ="U1C1">
C2 <input type="checkbox" class="table-cb" data-number="2" id="U1C2" value ="U1C2">
C3 <input type="checkbox" class="table-cb" data-number="3" id="U1C3" value ="U1C3">
C4 <input type="checkbox" class="table-cb" data-number="4" id="U1C4" value ="U1C4">
和jQuery
$(".table-cb").change(function() {
var num = $(this).data("number");
if (this.checked) {
$('#U' + num + '_TABLE').show('');
} else {
$('#U' + num + '_TABLE').hide('');
}
});