jquery addClass到所有标签

时间:2011-09-05 07:29:12

标签: jquery

我有

<div id="brand_name">
Audi
<span class="select_all">
Select all
</span>
</div><div class="models">
<label for="search_model_id_in_61"><input id="search_model_id_in_61" name="search[model_id_in][]" type="checkbox" value="61">100</label>
<label for="search_model_id_in_62"><input id="search_model_id_in_62" name="search[model_id_in][]" type="checkbox" value="62">80</label>
</div>

我试着像:

$(".select_all").click() {
   var models = $(this).parent().next()
}

但是如何将addClass class =“checked”添加到所有标签

3 个答案:

答案 0 :(得分:1)

$(".select_all").click() {
   var models = $(this).parent().next()
   models.find('label').addClass('checked');
}

但我不确定复选框是否应该在label标记内。我认为它应该在它之前或之后。

答案 1 :(得分:1)

要在选中和取消选中的所有复选框之间切换,这样可以使用:

$(".select_all").click(function() {
    var $select_all = $(this),
        $chk = $select_all.parent().next().find('input[type="checkbox"]');

    $select_all.toggleClass('active');

    if( $select_all.hasClass('active') ) {
        $chk.prop('checked', true);   
    } else {
        $chk.prop('checked', false);     
    }
});

演示here

答案 2 :(得分:1)

models.children().addClass('checked');

models.children().toggleClass('checked');

用于班级转换。

如果你想检查它们:

models.children('input').attr('checked', true);