选中列表中的所有复选框

时间:2013-06-17 14:34:46

标签: jquery html

我在LI和SPAN中有一个无序的复选框列表。当在UL上方按下按钮时,如何检查下面列表中的所有框?我尝试过这样的几个变种,没有成功:

$(this).closest('ul').find('input[type=checkbox]').prop('checked', this.checked);

2 个答案:

答案 0 :(得分:1)

更新了我的回答

nextAll();正是您要找的。

像这样使用Attr()prop()

var $elements = $('input#afterthis').closest('li').nextAll().find('input[type="checkbox"]');

$elements.attr('checked', 'checked');

$('body').append('There are ' + $elements.length + ' elements checked');

实施例: http://jsfiddle.net/qwRSW/3/

答案 1 :(得分:1)

如果按钮是<ul>

的兄弟
$('.myButton').click(function(){
    $(this).next('ul').find('input[type=checkbox]').prop('checked', true);
});

所以HTML看起来像:

<input type="button" class="myButton" value="Check all" />
<ul>
....
</ul>

此方法允许您拥有大量<ul>个,每个都由自己的按钮控制。只需重复HTML,无需更改jQuery。