.的document.getElementById( '盒子')style.width = "10px的"; 不起作用?

mcb*_*eav 2 javascript css

我似乎无法让这个脚本工作.有人可以帮忙吗?DIV的宽度未定义.它只是延伸到整个页面.

<html>
<head>
<style type="text/css">
#box{
    height:100px;
    border:3px;
    border-style:solid;
    border-color:#000;
}
</style>
<script>
document.getElementById('box').style.width="10px";
</script>
</head>
<body>
<div id="box"></div>
Run Code Online (Sandbox Code Playgroud)

Cᴏʀ*_*ᴏʀʏ 14

您的脚本<div>在页面上呈现之前正在运行.试试这样:

<html>
<head>
<style type="text/css">
#box{
    height:100px;
    border:3px;
    border-style:solid;
    border-color:#000;
}
</style>
</head>
<body>
    <div id="box"></div>

    <script type="text/javascript">
        document.getElementById('box').style.width="10px";
    </script>

</body>
</html>
Run Code Online (Sandbox Code Playgroud)

而且不要忘了关闭<body><html>标签.

为证明这一点,请看这个例子.我将脚本移回到该<head>部分,并将宽度设置更改为在窗口加载完成后运行.

<html>
<head>
<style type="text/css">
#box{
    height:100px;
    border:3px;
    border-style:solid;
    border-color:#000;
}
</style>

<script type="text/javascript">
    alert('test');

    window.onload = function() {
        document.getElementById('box').style.width="10px";
    }
</script>

</head>
<body>
    <div id="box"></div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

在呈现框之前,您将看到"测试"警报消息.


Jas*_*ary 7

该元素尚未存在于页面上.在将元素加载到DOM中之前,JavaScript无法访问/操作元素.您可以通过将<script>阻止移动到结束之上来克服此问题</body>.或者使用window.load事件.

前一个使用您的代码的例子在这里 - http://jsfiddle.net/ycWxH/