2016-07-28 101 views
0

使用下面的代碼我選擇所有複選框和所有單選按鈕將它們發送到數組。不要選擇父類是否隱藏

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),我不想選擇它們。我怎樣才能做到這一點?

回答

3

您可以使用.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

1

你也可以用: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(','); 
1

使用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(',');