attributes和property同步问题

2020-01-10  本文已影响0人  fb941c99409d
attribute property是什么?
为什么要理解这个?

以checkbox 为例
由于用户操作的是 property,浏览器最终认的也是property,
使用attribute相关的接口对布尔值属性checked的操作 可能不会有 选中/取消 效果

<body>
    <input type="checkbox" >
    <button>选中</button>
    <button>取消</button>
    <script>
        debugger;
        var input = document.querySelector('input[type=checkbox]');
        var button1 = document.querySelectorAll('button')[0];
        var button2 = document.querySelectorAll('button')[1];
        button1.onclick = ()=>{
            input.setAttribute('checked',true); // ×
            //$(input).attr('checked',true)     // ×
            // input.checked=true;              // √
            //$(input).prop('checked',true)     // √
        }
        button2.onclick = ()=>{
            input.setAttribute('checked',false);// ×
            //$(input).attr('checked',false)    // ×
            // input.checked=false;             // √
            //$(input).prop('checked',false)    // √
        }
        
    </script>
</body>
什么是布尔值属性?
attribute和property的同步关系
上一篇 下一篇

猜你喜欢

热点阅读