仅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属性。