javascript - 关于 javascript 和 DOM

标签 javascript html css dom

我想用DOM改变页面背景色和div背景色,我觉得可以用getElementById和onclick。所以我写代码来实现。但它不起作用。

我的代码有什么问题?

如何解决?

HTML

<html lang="en">
<head>
    <mate charset="utf-8" />
    <title>change color</title>
    <link rel="stylesheet" href="test.css" />
</head>

<body>
    <div id="test">
        <a href="javascript:void(0);" id="bodyColor">change body background-color</a>
        <a href="javascript:void(0);" id="divColor">change div background-color</a>
    </div>
<script src="test.js"> </script>
</body>
</html>

CSS

body *{
margin: 0;
padding: 0;
}

a{
    display: block;
    color: white;
    background-color: red;
    width: 200px;
    text-align: center;
    font-weight: bold;
    margin: 150px auto;
    text-decoration: none;
}

#test{
    border: 1px solid black;
    width: 500px;
    margin: 0 auto;
}

JavaScript

function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      oldonload();
      func();
    }
  }
}

function bodyBackgroundColor(){
    var color = document.getElementById('bodyColor');
    color.onclick = function(){
        body.style.backgroundColor = "red";
    }
}

function divBackgroundColor(){
    var color = document.getElementById('divColor');
    var divColor = document.getElementById('test');
    color.onclick = function(){
        divColor.backgroundColor = "red";
    }
}

addLoadEvent(bodyBackgroundColor);
addLoadEvent(divBackgroundColor);

最佳答案

bodyBackgroundColor , 你需要 document.之前 body (body 不是全局的):

document.body.style.backgroundColor = "red";

divBackgroundColor , 你漏掉了 .style. :

divColor.style.backgroundColor = "red";

而不是复杂的addLoadEvent , 只需移动您的 script标记到页面末尾,就在结束之前 </body>标签。然后上面定义的所有元素都将存在,您可以与它们进行交互。更多内容尽在 YUI Best Practices for Speeding Up your Website .


要调试这些类型的东西,您可以使用任何现代浏览器的内置调试器。按 F12 或 Ctrl+Shift+I 或者在浏览器的菜单中找到“Dev Tools”,你会发现你可以看到你的页面的源代码,在其中设置断点(JavaScript 引擎停止的地方,让你看到在它继续之前发生了什么);您可以单步执行代码(观察它一次执行一行)、检查变量等。

调试器最基本的部分是控制台,它向您显示错误(除其他外)。

关于javascript - 关于 javascript 和 DOM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28273823/

相关文章:

javascript - 使用 python beautiful soup 提取 html 不起作用

javascript - 尝试使用 javascript/jquery 查找 Canvas 的高度

javascript - 如何在一行中干燥我的 jQuery 代码

html - 为什么不是 :last-of-type working on tumblr?

javascript - Element.focus() + IE 10+ 中的 css 动画定位问题

javascript - 从函数内部为变量赋值

javascript - 在 Closure Compiler 中公开本地类型

jquery - 在 css 中分层编号嵌套订单列表?

javascript - jquery 显示/隐藏 div 下拉菜单不起作用

jquery - 在 jquery 进度条末尾加载一个 div 或 href 链接