IE 9 attributeとpropertyの分離
IE 6/7/8(Q)における要素のattributeはproperty内部実装とは無関係であり,IE 8は部分的に分離され,IE 9は完全に分離された.
次のようになります.
<div id="myId" class="cls" userAttribute="test1">
<script type="text/javascript">
var div = document.getElementById('myId');
div.userProperty = 'test2';
alert(div.attributes.length); // IE6/7/8 -> 4 , [id,class,userAttribute,userProperty]
// IE9 -> 3, [id,class,userAttribute]
alert(div.userAttribute); // IE6/7/8 -> 'test1'
// IE9 -> undefined
alert(div.getAttribute('userAttribute')); // IE6/7/8/9 -> 'test1'
alert(div.getAttribute('userProperty')); // IE6/7/8 -> 'test2'
// IE9 -> null
</script>
注意:Firefox/Safari/Chrome/Operaの表現はIE 9と同じです.
attributeとpropertyの詳細分析についてw 3 helpサイトを強くお勧めします.猛撃:http://w3help.org/zh-cn/causes/SD9006