Jquery,从条件中获取'this'选择器

时间:2014-05-23 07:43:38

标签: javascript jquery checkbox input jquery-selectors

我的页面上有几个元素,其中包含'复选框'类。单击时,将检查相应的复选框输入。但是,我需要让JQuery检查页面首次加载时复选框元素是否处于活动状态,并在那时相应地检查复选框输入。

由于有多个'复选框'在我的页面上,我使用了这个'这个'选择器以前,它工作正常,但我不知道如何使用我的条件页面加载,没有我之前使用的.click操作。这就是我尝试工作的原因:

if($('.checkbox').hasClass('active')) {
    $('[name="'+$(this).attr('rel')+'"]').prop('checked', true); 
}

显然'这个'选择器不知道我指的是什么。有没有更好的方法呢?因为它通过一堆元素进行检查而不仅仅是一个我难以理解的元素。谢谢!

2 个答案:

答案 0 :(得分:7)

您只能在jQuery函数的上下文中使用this,因此在此范围内,它不会引用任何.checkbox

您可以使用.each代替:

$('.checkbox.active').each(function() {
    // In this context, this refers to the DOM element represented by .checkbox.active
    $('[name="'+this.rel+'"]').prop('checked', true); 
});

答案 1 :(得分:4)

each功能可能符合您的需求:

$('.checkbox').each(function() {
    var $this = $(this);
    if ($this.hasClass('active')) {
        $('[name="'+$this.attr('rel')+'"]').prop('checked', true); 
    }
});

如果在active班级不存在时必须取消选中复选框,则:

$('.checkbox').each(function() {
    var $this = $(this);
    $('[name="'+$this.attr('rel')+'"]').prop('checked', $this.hasClass('active')); 
});