JQuery单击函数仅在当前div中

时间:2013-05-27 10:57:30

标签: jquery click

我有很多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取消选中所有其他复选框,如果选中&#34; all&#34; -checkbox,反之亦然。

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

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

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

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

1 个答案:

答案 0 :(得分: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);
});
 });