1

私は現在javascriptで遊んでいて、そのコツをつかもうとしています。あいさつを次々とではなく、1行にまとめる方法を考えていました。私の質問が理にかなっていることを願っています。

window.onload = function() {
getGreeting();
};

for(var hours=0; hours < 24; hours++)
{

document.getElementById("loop").innerHTML = document.getElementById("loop").innerHTML + "\n" +  getGreeting(hours); 
}


function getGreeting(hours) {
    var greetingText;
    if (hours >=6 && hours < 12) {
        greetingText = "Good morning!";
    } else if (hours >= 12 && hours < 17) {
        greetingText = "Good afternoon!";
    } else if (hours >= 17 && hours < 23) {
        greetingText = "Good Evening!";
    } else if (hours >= 23 || hours < 6) {
        greetingText = "Go to sleep!";
    }
    return greetingText;
}

http://jsfiddle.net/priswiz/KcS5b/ jsfiddleファイルで挨拶が次々と並んでいるのがわかりますが、1行に1つずつ取得する方法を教えてください。

ありがとう!

4

3 に答える 3

6

に置き換え\nます<br />

http://jsfiddle.net/KcS5b/2/

于 2013-03-14T16:36:49.463 に答える
1

問題は\n、新しい行を追加したい場所で改行文字を使用していることです。HTMLでは、空白は関連するマークアップとは見なされません。あなたがそれについて考えるとき、これは理にかなっています。タブと改行を使用してHTMLを記述したいが、結果のドキュメントにそれらのスペースを表示させたくない場合。

探しているセマンティックマークアップは、改行タグですbr

編集:さらに、各挨拶を.などのブロックレベルの要素でラップすることができますdiv。デフォルトでは、一連のdivsは垂直方向にスタックします。これには、各グリーティングを独自のセマンティックマークアップに区分し、独自のスタイルを適用したり、JavaScriptで個別にターゲットを設定したりできるという利点があります。単純な例では明らかにやり過ぎかもしれませんが、これは一般的なWeb開発の原則にまで及びます。

于 2013-03-14T16:38:39.050 に答える
0
document.getElementById("loop").innerHTML+=getGreeting(hours);

上記のように連結(+)を使用してください!

于 2013-03-14T16:58:33.153 に答える