0

就像这样,我在一个页面中有许多具有多个类的 DIV。

<div class="testlayer">
    <label for="test1"><input name="test" id="test1" value="1" class="checkvalue" type="checkbox"></label>
    <label for="test2"><input name="test" id="test2" value="2" class="checkvalue" type="checkbox"></label>
    <label for="test3"><input name="teat" id="test3" value="all" class="checkall" type="checkbox"></label>
</div>

<div class="testlayer">
    <label for="test11"><input name="test" id="test11" value="1" class="checkvalue" type="checkbox"></label>
    <label for="test21"><input name="test" id="test21" value="2" class="checkvalue" type="checkbox"></label>
    <label for="test31"><input name="teat" id="test31" value="all" class="checkall" type="checkbox"></label>
</div>

如果选中“所有”复选框,则还有一个 JQuery 可以取消选中所有其他复选框,反之亦然。

 $(document).ready(function()
{
$(".checkall").click(function() {
$(".checkvalue").attr('checked', false);
});

$(".checkvalue").click(function() {
$(".checkall").attr('checked', false);
});
 });

现在我的问题是:如果我选中一个复选框testlayer,则该类的所有其他 div 中的复选框也会更改状态。但我只想在我单击的复选框所在的当前 div 上有事件。

我想我必须定义一些东西,(this)但我不知道如何......抱歉成为 JQuery 的新手,感谢您的帮助。

4

1 回答 1

0

请看一下http://jsfiddle.net/YmcqJ/

$(document).ready(function()
{
$(".checkall").click(function() {
$(this).closest('div').find(".checkvalue").attr('checked', false);
});

$(".checkvalue").click(function() {
$(this).closest('div').find(".checkall").attr('checked', false);
});
 });
于 2013-05-27T11:02:35.460 回答