2011-12-15 42 views
1

我有代碼工作,但是當我添加另一個ul時,它會選中所有的複選框。jQuery select/unselect all,但只在同一個元素內

$('#checkall').click(
function(){ 
    $(this).closest('ul').find(':checkbox').attr('checked', this.checked); 
    $(this).closest('ul').find('span').toggleClass('checked', this.checked) 
}) 

<div class="checks"> 
<ul> 
    <li><label for="checkall"><div class="checker"><span class=""><input type="checkbox" id="checkall" name="about"></span></div><strong>About our program</strong></label></li> 
    <li><label for="about1"><div class="checker"><span><input type="checkbox" id="about1" name="about"></span></div>CEO Message</label></li> 
</ul> 
</div> 

回答

2

只要用你的分度類檢查:

$("#checkall").click(function() { 
    $(this).closest("div.checks").find(":checkbox").attr("checked", this.checked); 
    $(this).closest("div.checks").toggleClass("checked", this.checked); 
}); 

更新

既然你想多checkall輸入的,你想要使用一個類而不是一個id。因此,使#checkall => input.checkall,它應該工作。

見我的小提琴:http://jsfiddle.net/c4urself/jvPR3/

+0

不工作.. :(這裏http://jsfiddle.net/upWxv/試試吧12/ – Mackelito 2011-12-15 08:10:44

1

你可以使用:

$('#checkall').click(
function(){ 
    $(this).find(':checkbox').attr('checked', this.checked); 
    $(this).find('span').toggleClass('checked', this.checked) 
}) 

<div class="checks"> 
<ul> 
    <li><label for="checkall"><div class="checker"><span class=""><input type="checkbox" id="checkall" name="about"></span></div><strong>About our program</strong></label></li> 
    <li><label for="about1"><div class="checker"><span><input type="checkbox" id="about1" name="about"></span></div>CEO Message</label></li> 
</ul> 
</div> 
+0

不是爲我工作:(http://jsfiddle.net/upWxv/6/ – Mackelito 2011-12-15 08:04:59

相關問題