使用node.js时,不能用javascript影响div?

时间:2015-01-01 02:57:54

标签: javascript css node.js pug stylus

我可能做了一些明显错误的事情但我使用了node.js并且我正确地链接了一个javascript文件(alert("hello");有效)。但是我不能用DOM来影响任何事情。简单的例子:

玉:

doctype html
html
    head
        link(rel='stylesheet', href='/stylesheets/styles.css')
        script(src='/javascripts/script.js')
    body
        block index_block
        div#divClassName

#divClassName
    background-color red
    width 200px
    height 200px

JS:

alert("hello");

var div = document.getElementById("divClassName");

div.style.backgroundColor = "green";

盒子保持红色。为什么?感谢。

1 个答案:

答案 0 :(得分:0)

由于您的脚本在读取HTML之前运行,因此div变量返回undefined,因为在执行脚本时不存在此类元素。将JS包装在文档的函数onload中允许您推迟执行,直到文档完全加载为止。

window.onload = function(){
    alert("hello"); 
    var div = document.getElementById("divClassName");
    div.style.backgroundColor = "green";
}