使用innerHTML设置段落的值不起作用

时间:2012-09-18 09:54:56

标签: javascript

innerHTML在此JavaScript代码中无效。

var date = new Date();
var time = date.getHours();
var morning = document.p.getElementById("greeting").innerHTML="Good Morning ";
var afternoon = document.write =  "Good Afternoon ";
var evening = document.write = "Good evening";

if (time < 12){
    morning}
else if (time < 18){
afternoon}
else {evening};

HTML代码

<p id="greeting"> </p>

我正在尝试根据时间将代码读作“早上好”或“下午”。 JavaScript位于外部文件中。它与document.write一起使用,但在外部文件中,问候语显示在页面顶部。

我在这里尝试根据时间设置“问候”的

4 个答案:

答案 0 :(得分:3)

document.p.getElementById("greeting")

应该是

document.getElementById("greeting")

答案 1 :(得分:2)

尝试替换此

var morning = document.p.getElementById("greeting").innerHTML="Good Morning ";

var morning = document.getElementById("greeting").innerHTML="Good Morning ";

答案 2 :(得分:2)

p.

中删除document.p.getElementById

纠正一个:

document.getElementById("greeting").innerHTML="Good Morning ";

答案 3 :(得分:2)

var afternoon = document.write = "Good afternoon";

这样做是为了引入一个名为afternoon的变量,并在write上设置属性document,这是以前的函数调用,到字符串"Good afternoon"

在代码的稍后部分,您只需编写afternoon来访问变量,但不对其执行任何操作。

看起来你想做这样的事情:

var morning = function() { document.getElementById("greeting").innerHTML="Good Morning "; };
var afternoon = function() { document.getElementById("greeting").innerHTML="Good Afternoon "; };
var evening = function() { document.getElementById("greeting").innerHTML="Good evening"; };

if (time < 12) {
   morning();
} else if (time < 18) {
   afternoon();
} else {
   evening();
};

也就是说,上面的代码最接近您的代码,这有点正确。我仍然会说有一些改进的余地。以下内容对我来说更有意义:

var morning = 'Good Morning ';
var afternoon = 'Good Afternoon ';
var evening = 'Good evening';

if(time < 12) {
    document.getElementById("greeting").innerHTML = morning;
} else if (time < 18) {
    document.getElementById("greeting").innerHTML = afternoon;
} else {
    document.getElementById("greeting").innerHTML = evening;
}

更好的是,您可能首先要决定要使用哪条消息,然后分配它,如果您想要更改输出问候语的位置,则可以减少更改代码的位置,例如:

var messages = {
   morning: 'Good Morning ',
   afternoon: 'Good Afternoon ',
   evening: 'Good evening'
};

var greeting = time < 12 
    ? messages.morning 
    : time < 18 
        ? messages.afternoon 
        : messages.evening;

document.getElementById('greeting').innerHTML = greeting;