2017-09-14 3 views
-1

HTMLでID = "demo"の段落要素に複数回(ループから)JavaScript関数の数値を表示したいとします。javascript関数から段落要素に何回も数値を表示

プログラムを実行すると、ブラウザのWebページがフリーズします。

何が問題ですか?

<!DOCTYPE html> 
<html> 
<script> 
    function func(x) 
    { 
    for (var i=0;i<10;i++) 
     document.getElementbyId("demo").innerHTML=(x*i)+"</br>"; 
    } 
</script> 
<body> 
    <form> 
    input year: 
    <input type="text" id="year"> 
    <input type="button" value="find type" onclick="func(year.value);"> 
    </form> 
    <p id="demo"></p> 

</body> 

+0

なぜ入力年がラベルに含まれていないのですか – clearshot66

+0

問題は変わらないと思います – user8584573

+0

JSに誤字があり、getElementByIdの代わりに 'getElementbyId'がありますが、これはブラウザをフリーズするべきではありません他の場所になければなりません。 –

答えて

1

わからない理由は、ブラウザの凍結 - おそらくあなたは理由getElementbyIdにタイプミスのない結果を見ていないしているが(getElementByIdをする必要がありますか)?

副次的な問題:あなたのforループを通過するたびに前回のものが上書きされるため、最後の反復の結果しか表示されません。

代わりに、それぞれの上にHTMLを追加し、私はここでやったように、ループを通過する、または変数でそれを収集し、最後に文書にドロップ:

function func(x) { 
 
    var ret = ""; 
 
    for (var i = 0; i < 10; i++) { 
 
    ret += (x * i) + "<br>"; // </br> is not correct; <br/> is not necessary 
 
    } 
 
    document.getElementById("demo").innerHTML = ret; 
 
}
<form> 
 
    input year: 
 
    <input type="text" id="year"> 
 
    <input type="button" value="find type" onclick="func(year.value);"> 
 
</form> 
 
<p id="demo"></p>

関連する問題