我有一个由排序标准组成的菜单。每个条件的选项在div wioth类' .collapse_box'中列为复选框。
我需要检查这些div中的每一个,看看是否检查了它包含的任何复选框。如果有任何复选框,我需要将DIV显示设置为阻止。
我正在思考这些问题:
$('.collapse_box')each(function()
if( $(this).(input:checked).length() > 0{ //here lies my problem
$(this).show();
}
});
看到我对javascript和jquery很新,我不知道如何返回$(this)的复选框。或者更好地说:检查$(this)中是否有任何复选框的正确方法。
答案 0 :(得分:5)
您的选择器错误,元素总是以字符串或对象形式给出:
if( $(this).find('input:checked').length > 0){
此外,length
不是一个函数,而是一个属性。你忘记了.find()
Made you a jsFiddle with demo
答案 1 :(得分:1)
好吧,假设input
是儿童,这样的事情会起作用:
$('.collapse_box').each(function(){
if($(this).find('input').prop('checked')){
$(this).show();
}
});
.prop('checked')
篇返回一个布尔值,表示是否检查了input
。
编辑 Martijn提出了一个很好的观点,您可以使用mod将其切换为vanilla JS。
$('.collapse_box').find('input').each(function(){
var self = this;
if(self.checked){
self.style.display = 'block';
}
});