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

Ste*_*ock 1 javascript checkbox jquery input jquery-selectors

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

由于我的页面上有多个"复选框"类,我以前使用过'this'选择器并且工作正常,但我不知道如何使用我的条件页面加载来执行此操作而不使用我使用的.click操作之前.这是我正在尝试做的工作:

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

显然,'this'选择器不知道我指的是什么.有没有更好的方法呢?因为它通过一堆元素检查,而不仅仅是一个我难倒.谢谢!

Cod*_*gue 7

你只能this在jQuery函数的上下文中使用,所以在这个范围内它不会引用任何.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); 
});
Run Code Online (Sandbox Code Playgroud)

  • FWIW,`rel`有一个反射属性,所以`$(this).attr('rel')`最终成为编写`this.rel`的迂回方式.:-) (2认同)