1

このinnerHTMLJavaScript コードでは が機能していません。

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";

これが行うことは、という変数を導入し、それと以前は関数呼び出しだったプロパティonのafternoon両方を string に設定することです。writedocument"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 に答える