我有像这样的jquery代码
HTML :
<table class="display">
<tr>
<td style="vertical-align:top;">
<table class="display">
<thead>
<tr>
<td><label><input type="checkbox" class="menu_3"/> menu 3</label></td>
</tr>
</thead>
</table>
<table class="display table-hover">
<tbody>
<tr>
<td><label><input type="checkbox" class="submenu_3"/> submenu 3</label></td>
</tr>
<tr>
<td><label><input type="checkbox" class="submenu_3"/> submenu 3</label></td>
</tr>
</tbody>
</table>
</td>
</td>
</tr>
</table>
JQUERY
for(i=1;i<=6;i++){
$(".menu_"+i).change(function(){
$(".submenu_"+i).attr("checked", this.checked);
});
}
我想查看menu 3
,然后检查所有submenu 3
,
并以某种方式它不起作用,因为i
参数丢失..
我不知道发生了什么......
帮帮我们..
答案 0 :(得分:1)
应该是
for(i=1;i<=6;i++){
(function(it){
$(".menu_"+it).change(function(){
$(".submenu_"+it).prop("checked", this.checked);
});
})(i)
}
问题是闭包变量i
的使用,也准备好this question的答案
答案 1 :(得分:1)
您可以使用带有选择器的选项来选择所有.menu_*
元素,然后使用slice()
来获取数字以选择相关的.submenu_*
元素等。无需循环:< / p>
$('[class^="menu_"]').on('change', function(){
$(".submenu_" + this.className.slice(-1)).prop("checked", this.checked);
});