javascript - 如何使用复选框的值来隐藏具有相应 ID 的 div?

标签 javascript jquery html checkbox input

我正在使用一组复选框,每个复选框对应一个包含内容的 div。我试图对所有复选框只使用一个函数。

我创建了一个函数来查找任何被点击的复选框,识别该复选框是否被选中,然后尝试显示相应的内容。

<script type="text/javascript">
    $(document).ready(function(){
        $('input[type="checkbox"]').click(function(){
            if($(this).prop("checked") == true){
                $($(this).value).show();
            }
            else if($(this).prop("checked") == false){
                $($(#this).value).hide();               
            }
        });
    });
</script>

<input type="checkbox" name="dieConstant" value="'#dc'"> Show Dielectric Constant<br>


<div id="#dc" style="display:none">
    content
</div>

勾选复选框时,“dc”div 中的内容应该出现,但实际上没有。请注意,将“$(this).show(); ”替换为“$(#dc).show(); ”会给出预期的结果,这就是我所需要的,但它需要所有复选框都能正常工作。

最佳答案

为此,最好使用data-attribute。我将其命名为 data-idvalue 属性仍然可用于保存实际值。

$(document).ready(function(){
    $('input[type="checkbox"]').click(function(){
        if($(this).prop("checked") == true){
            $($(this).data('id')).show();
        }
        else if($(this).prop("checked") == false){
            $($(this).data('id')).hide();

        }
    });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<input type="checkbox" name="dieConstant" value="" data-id="#dc"> Show Dielectric Constant (dc)<br>

<input type="checkbox" name="dieConstant" value="" data-id="#dc2"> Show Dielectric Constant (dc2)<br>

<div id="dc" style="display:none">
    content dc
</div>

<div id="dc2" style="display:none">
    content dc2
</div>

@Rory McCrossan 提出的使用 toggle() 减少代码的好建议:

$(document).ready(function(){
    $('input[type="checkbox"]').click(function(){
        $($(this).data('id')).toggle();
    });
});

关于javascript - 如何使用复选框的值来隐藏具有相应 ID 的 div?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57866317/

相关文章:

javascript - 哪个原型(prototype)用于创建带有未知标签的节点

javascript - AJAX 不在 IE7/IE8 中传递 POST 变量

javascript - 我是否应该转换内联脚本以便将其放入外部 .js 文件?

jquery - 远程模式不在 bootstrap 3 中显示页眉和页脚

javascript - JQuery Ajax 请愿正在修改给定的 URL

html - 如何在网页中创建两个独立的栏目?

javascript - 如何避免为组件的 prop 调用相同的函数 : ReactJS

jquery - 仅限 Chrome - 使用 jquery + jqueryui 调整大小时和位置时闪烁

html - 如何在单个突出显示的行上实现多个图像按钮

javascript - 使用超链接将值传递到文本框(在另一页上)