2017-09-14 36 views
-1

我想在HTML中以ID =「demo」的段落元素多次顯示來自JavaScript函數(來自循環)的數字。從javascript函數多次顯示段落元素中的數字

運行程序時,瀏覽器的網頁會凍結。

什麼問題?

<!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>