我的页面上有几个元素,其中包含'复选框'类。单击时,将检查相应的复选框输入。但是,我需要让JQuery检查页面首次加载时复选框元素是否处于活动状态,并在那时相应地检查复选框输入。
由于有多个'复选框'在我的页面上,我使用了这个'这个'选择器以前,它工作正常,但我不知道如何使用我的条件页面加载,没有我之前使用的.click操作。这就是我尝试工作的原因:
if($('.checkbox').hasClass('active')) {
$('[name="'+$(this).attr('rel')+'"]').prop('checked', true);
}
显然'这个'选择器不知道我指的是什么。有没有更好的方法呢?因为它通过一堆元素进行检查而不仅仅是一个我难以理解的元素。谢谢!
答案 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'));
});