首页 > 解决方案 > 从对象中获取值并设置复选框状态

问题描述

在下面的示例中,我需要第一个复选框,checked第二个和第三个复选框unchecked

目前我得到了所有这些checked

let data = {"admin":"true","nts":"false","chat":"false"};

$('button').on('click', function(){
    $('.bcheck').each(function(){
            let x = $(this).attr('data-x');
            $(this).attr('checked', data[x]);
        });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<input type='checkbox' class='bcheck' data-x='admin'>
<input type='checkbox' class='bcheck' data-x='nts'>
<input type='checkbox' class='bcheck' data-x='chat'>
<button>CLICK</button>

标签: javascriptjquerycheckbox

解决方案


您在data对象中的值都是字符串。所以他们都会评估为true。丢失字符串并使它们成为布尔值。

let data = {
  "admin": true,
  "nts": false,
  "chat": false
};

$('button').on('click', function() {
  $('.bcheck').each(function() {
    let x = $(this).attr('data-x');
    console.log(data[x]);
    $(this).attr('checked', data[x]);
  });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<input type='checkbox' class='bcheck' data-x='admin'>
<input type='checkbox' class='bcheck' data-x='nts'>
<input type='checkbox' class='bcheck' data-x='chat'>
<button>CLICK</button>


推荐阅读