仅IE6/7中添加checked为true的input到DOM中为false

HTML INPUT元素有个checked属性,多数情况type为radio和checkbox。

当创建一个input,checked属性赋值为true,添加到DOM文档中,当再次取checked属性时,IE6、7竟然是false。

测试如下

var div = document.createElement('div')
var input = document.createElement('input')
input.type = 'checkbox'
input.checked = true
div.appendChild(input)
alert(input.checked) // IE6/7 false

使用文档碎片IE6/7依然是false

var frag = document.createDocumentFragment('div')
var input = document.createElement('input')
input.type = 'checkbox'
input.checked = true
frag.appendChild(input)
alert(input.checked) // IE6/7 false

解决方式:可以先把checked属性暂存下,比如加一个defaultChecked属性,添加到DOM后,再用defaultChecked赋值给checked属性。

原文地址:https://www.cnblogs.com/snandy/p/3801576.html