javascript - jQuery - 选中复选框时隐藏/显示 div

标签 javascript jquery checkbox checked

我有一个 jquery 函数,可以在选中或取消选中某些复选框时显示或隐藏 div,并且使用“更改”函数可以正常工作。因此,如果之前已经选中了复选框,则不会显示相应的 div。如何更改此代码才能正常工作?

我的代码在这里:

<script>
    jQuery(document).ready(function($) {

        $('.my_features').change(function() {
            var checkbox = $(this);                 
            if( checkbox.is(':checked') ) {                       
                $( '#' + checkbox.attr('data-name') ).show();
            } else {                      
                $( '#' + checkbox.attr('data-name') ).hide();
            }
        });
    });
</script>

最佳答案

这是非常规范的。

虽然我会使用 data-id 而不是 data-name:

$(function() {
  $('.my_features').on("change",function() { 
    $(`#${this.dataset.id}`).toggle(this.checked);
 }).change(); // trigger the change
});
.toggleDiv { display:none}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<label><input type="checkbox" class="my_features" data-id="div1">Div 1</label>
<label><input type="checkbox" checked class="my_features" data-id="div2">Div 2</label>
<div id="div1" class="toggleDiv">Div1 div</div>
<div id="div2" class="toggleDiv">Div2 div</div>

如果您不喜欢混合 DOM 和 jQuery 访问,那么

$(`#${$(this).data('id')}`).toggle($(this).is(':checked')); 
  

关于javascript - jQuery - 选中复选框时隐藏/显示 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50318172/

相关文章:

javascript - 为什么当我创建 10,000 个元素时,内存使用量没有增长?

jquery - colorSelect 函数将 alt 标签传递到输入字段

javascript - 更改插入到 select2 中当前选择元素中的选择文本

javascript - 如果 AJAX 错误,请取消选中复选框

javascript - 将范围对象传递给可以监视和更新它的服务

Javascript appendchild 不包括 Body/Head 中的元素

javascript - 定时器开始暂停和恢复

javascript - 如何使用 Jquery 删除文本区域的第一行?

wpf - 复选框失去焦点与 FocusManager.IsFocusScope ="True"

javascript - Highchart 上的复选框拒绝选中或取消选中