2013-05-27 53 views
0

我有很多DIV在页面中有多个类,就像这样。JQuery点击功能只在当前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来取消选中所有其他复选框,如果“所有” -checkbox检查和周围的其他方式。

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

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

现在我的问题:如果我在一个testlayer选中一个复选框,在这个类中的所有其它的div复选框改变居留制得。 但我只想在我点击的复选框所在的当前div上有事件。

我想我必须定义一些与(this),但我不知道如何......对于作为一个新手到jQuery和thx为您的帮助感到抱歉。

回答

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); 
}); 
});