javascript无法获取属性"style"的值 对象为null或未定义

就放上问题代码:

在360浏览器 火狐浏览器 谷歌浏览器都没问题 唯独IE不行 IE会弹出如下错误提示

求大神指点指点为什么会出现这个样子 都弄到我一夜睡不着了再给上老师的代码

<!DOCTYPE html>
<html>
<head>
<meta  charset=utf-8 />
<title>test</title>
<style>
#one {
    color: red;
    width: 150px;
    border: 1px solid blue;
}
#but {
    color: blue;
    width: 100px;
    border: 1px solid red;
}
</style>
<script>
function cssrule(a, b) {
    var a = a || 0;
    var b = b || 0;
    if (!!document.all) {
        return document.styleSheets[a].rules[b].style;
    } else {
        return document.styleSheets[a].cssRules[b].style;
    }
}
console.log(cssrule().width);
console.debug(cssrule(0, 1).width);

window.onload = function() {
    var one = document.getElementById("one");
    var but = document.getElementById("but");
    but.onclick = function() {
        one.className = 'div2';
    }
}
</script>
</head>
<body>
<div id="one">11111111111111</div>
<div id="but">22222222222222</div>
</body>
</html>

追问

大侠 我只是想知道cssRules和rules的兼容函数 大侠你的回答也会报错…… 我只是在IE弹出第一个样式表里的DIV的高度(在浏览器兼容的前提下)

追答

小弟,我试过了,没有报错,你要定义style在你的html文件里面chrome谷歌浏览器支持下面的,ie什么的支持上面的,不过我试过了谷歌浏览器,是可以的,你一定是哪里楼掉了

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-03-27
document.all 是全局元素的一个集合.也可以当作是否IE内核的一个判断,
相似回答