不要选择父类是否隐藏

问题描述:

使用下面的代码我选择所有复选框和所有单选按钮将它们发送到数组。不要选择父类是否隐藏

var options = []; 
$('.option input[type="checkbox"]:checked, .option input[type=radio]:checked').each(function() { 
    options.push($(this).val()); 
}); 
var options_checked = options.join(','); 

存在具有父类sass_syntax,当然他们还会选择一些单单选按钮。如果隐藏类sass_syntaxdisplay: none),我不想选择它们。我怎样才能做到这一点?

您可以使用.not()过滤

var options = $('.option input[type="checkbox"]:checked, .option input[type=radio]:checked').not('.sass_syntax:hidden input').map(function() { 
    return $(this).val(); 
}).get(); 
var options_checked = options.join(','); 
+0

谢谢,就是我想要的。 – Reza

你也可以用:not()

var options = []; 
$('.option input[type="checkbox"]:checked, .option input[type=radio]:checked:not(.sass_syntax:hidden)').each(function() { 
    options.push($(this).val()); 
}); 
var options_checked = options.join(','); 

使用jQuery“hasClass”检查,以发现输入复选框/单选按钮的父元素

类中排除
var options = []; 
$('.option input[type="checkbox"]:checked, .option input[type=radio]:checked').each(function() { 
    if($(this).parent().hasClass('sass')){ 
     $(this).parent().hide(); 
     return; 
    } 
    options.push($(this).val()); 

}); 
var options_checked = options.join(',');