1

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

4 回答 4

3
document.p.getElementById("greeting")

应该

document.getElementById("greeting")
于 2012-09-18T09:56:00.127 回答
2

尝试更换这个

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

var morning = document.getElementById("greeting").innerHTML="Good Morning ";
于 2012-09-18T09:56:50.603 回答
2

p.从中删除document.p.getElementById

正确一:

document.getElementById("greeting").innerHTML="Good Morning ";
于 2012-09-18T09:56:53.753 回答
2
var afternoon = document.write = "Good afternoon";

这样做的目的是引入一个名为的变量afternoon,并将它属性writeon document(以前是一个函数调用)设置为 string "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;
于 2012-09-18T10:01:15.000 回答