看一下这个示例代码,它不起作用:
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script type="text/javascript">
<!--
function moveMe() {
document.getElementById('moveme').top = 200;
document.getElementById('moveme').style.backgroundcolor = 'green';
document.getElementById('writeme').innerHtml = 'abc';
alert('called!');
}
// -->
</script>
<style type="text/css">
.moveable {
position: absolute;
top: 30px;
left: 200px;
width: 100px;
height: 100px;
background-color: yellow;
}
#writeme {
background-color: red;
color: white;
}
</style>
</head>
<body>
<div id="moveme" class="moveable" onClick="moveMe()">
<p id="writeme">Hello!</p>
</div>
</body>
</html>
当我单击文本时,会显示警报,但文档中没有任何更改。段落文本没有被覆盖,div没有移动...在FF和IE中测试了它,还通过Firebug检查了DOM:奇怪的是新值被写入节点,但它们以粗体显示,并且旧的值(value)观仍然存在。搞什么?
我想我在这里遗漏了一些基本的东西。
最佳答案
- 非零长度需要单位,“200”缺少单位
- JavaScript 区分大小写:
backgroundColor
和innerHTML
- 由于您似乎正在使用 XHTML,因此您的脚本是 commented out
关于Javascript不改变文档?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2872315/