【发布时间】:2011-12-07 23:30:45
【问题描述】:
我有这些受众群体,其中隐藏着受众群体。当用户点击受众组名称时,隐藏的受众将出现。现在,我想要做的是当用户点击观众组复选框时,也只会检查它下面的观众复选框。
目前我有以下,但有一个小错误,当我点击一个观众组复选框时,所有观众复选框,即使是那些不在下面的也被选中。我只想检查该受众组下的那些受众。
你可以在这里看到更多我的代码:http://jsfiddle.net/CVnTy/
我有这个示例 html:
<div class='audience-group'>
<input type='checkbox' class='audience-group-checkbox' value='9' />
<div class='audience-group-name'>
JGG Enterprises
</div>
<div class='audience'>
<input type='checkbox' class='audience-checkbox' value='7' />
<div class='audience-name'>
Mucho, George
</div>
</div>
<div class='audience'>
<input type='checkbox' class='audience-checkbox' value='9' />
<div class='audience-name'>
Bo, Jen
</div>
</div>
<div class='audience'>
<input type='checkbox' class='audience-checkbox' value='10' />
<div class='audience-name'>
Gin, Junto
</div>
</div>
<div class='audience'>
<input type='checkbox' class='audience-checkbox' value='12' />
<div class='audience-name'>
Molina, Greg
</div>
</div>
<div class='audience'>
<input type='checkbox' class='audience-checkbox' value='36' />
<div class='audience-name'>
Berkely, Dada
</div>
</div>
</div>
</div>
<div>
<div class='audience-group'>
<input type='checkbox' class='audience-group-checkbox' value='8' />
<div class='audience-group-name'>
GBA Inc.
</div>
<div class='audience'>
<input type='checkbox' class='audience-checkbox' value='1' />
<div class='audience-name'>
Kapate, Jones
</div>
</div>
<div class='audience'>
<input type='checkbox' class='audience-checkbox' value='2' />
<div class='audience-name'>
Bingo, Gringo
</div>
</div>
<div class='audience'>
<input type='checkbox' class='audience-checkbox' value='4' />
<div class='audience-name'>
Doe, John
</div>
</div>
<div class='audience'>
<input type='checkbox' class='audience-checkbox' value='8' />
<div class='audience-name'>
Merio, Horhe
</div>
</div>
<div class='audience'>
<input type='checkbox' class='audience-checkbox' value='35' />
<div class='audience-name'>
Dalisay, JM
</div>
</div>
</div>
</div>
还有我的 jquery 代码:
$('.audience-group-name').click(function() {
if ($(this).nextUntil('.audience-group').length) {
$(this).nextUntil('.audience-group').toggle();
} else {
alert('No audience under this group.');
}
});
$('.audience-group-checkbox').each(function() {
$(this).click(function() {
$('.audience-checkbox').attr('checked', $(this).is(':checked'));
});
});
我是 jquery 的新手,感谢您的帮助! :)
【问题讨论】:
-
不需要 .each() ... 当使用
$('.audience-group-checkbox').click()时,.click() 将自动附加到类 Audience-group-checkbox 的每个元素上
标签: jquery jquery-selectors checkbox