如果 DIV 包含选中的复选框,则将显示设置为阻止

If DIV contains checked checkbox set display to block

本文关键字:显示 设置 包含选 DIV 复选框 如果      更新时间:2023-09-26

我有一个由排序标准组成的菜单。每个条件的选项在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)中的任何复选框是否被选中的正确方法。

你的选择器是错误的,元素总是作为字符串或对象给出:

if( $(this).find('input:checked').length > 0){

此外,length 不是一个函数,而是一个属性。你忘记了.find()
用演示让你成为js小提琴

好吧,假设input是孩子,这样的事情就可以了:

$('.collapse_box').each(function(){
    if($(this).find('input').prop('checked')){
        $(this).show();
    }
});

.prop('checked')段返回一个布尔值,表示是否选中input

编辑 Martijn 提出了一个很好的观点,你可以用选择器的 mod 将其切换到原版 JS。

$('.collapse_box').find('input').each(function(){
    var self = this;
    if(self.checked){
        self.style.display = 'block';
    }
});