使用'keyup'时出现循环异常的奇怪JQuery

时间:2015-07-14 19:30:19

标签: jquery loops for-loop click

在我的网页上,我有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>

1 个答案:

答案 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('');
    }
});