检查最后一个值时如何选择其他复选框

时间:2012-01-09 15:02:46

标签: javascript jquery html

这是我的复选框列表http://jsfiddle.net/YnM2f/

的示例

我们说我检查G然后A,B,C,D,E,F也自动检查。如何用jQuery实现我的目标?

5 个答案:

答案 0 :(得分:4)

首先,您需要根据单击哪个复选框获取所有复选框。为此,您需要获取父节点,它之前的兄弟节点。以下是一些可以帮助您实现目标的代码,但您需要对其进行处理以使其适合您。

http://jsfiddle.net/urau8/

$("input:checkbox").on("click",function(){
    if(this.checked)
    $(this).parent().prevAll().each(function(){
        $("input:checkbox",this).attr("checked",true);
    });
});

答案 1 :(得分:3)

$('input:checkbox').change(function(){
     var $allParents = $(this).parent();
     $allParents.prevAll().find('input').attr('checked', 'checked');
     $allParents.nextAll().find('input').removeAttr('checked');
});

试试这个

答案 2 :(得分:3)

这将检查选中复选框上方的所有复选框,并取消选中未选中复选框上方的所有复选框,给定您提供的复选框布局。

$('input:checkbox').click(function () {
    var state = $(this).prop('checked');
    var elements;
    if (state) {
        elements = $(this).parent().prevAll();
    } else {
        elements = $(this).parent().nextAll();
    }
    elements.each(function () {
        $('input:checkbox', this).prop('checked',state);
    });
});

答案 3 :(得分:2)

嗯它已经完成了五次,但这就是我所做的:http://jsfiddle.net/YnM2f/27/

$('input').click(function(){
    if( $(this).is(':checked') ){
      $(this).parent('p').prevAll().children('input').attr('checked',true)

         }
})

答案 4 :(得分:1)

尝试这样的事情:http://jsfiddle.net/YnM2f/16/

这是一个非常具体的解决方案(因为它只适用于“G”),但它应该让您了解如何自定义此代码以满足您的需求。

$('input:checkbox').filter(function(){
    return (/ G/).test($(this).parent().text())
}).on('change', function() {
    var gBox = $(this);
    $('input:checkbox').prop('checked', $(gBox).prop('checked'));
});