簡體   English   中英

為什么此代碼卡住了並且不起作用(javascript)

[英]Why does this codes stuck and doesn't work (javascript)

這個簡單的代碼使我發瘋。 它不適用於任何瀏覽器或JSFiddle。 該頁面無法響應,並被卡住。

https://jsfiddle.net/dckkj4uu/6/

HTML:

<html>
    <head>
        <title>Page Title</title>
    </head>
    <body>
    <p>
    First number:<br>
        <input type="number" id="fir">
        <br>
    Second number:<br>        
        <input type="number" id="sec">
        <br>
    Increment:<br>        
        <input type="number" id="inc">
        <br>        
    </p>
        <button id="btn">Click</button>
    </body>
</html>

JS:

document.getElementById("btn").addEventListener("click", me);


var first = document.getElementById("fir");
var f = first.value;
var second = document.getElementById("sec");
var s = second.value;
var inc = document.getElementById("inc");
var ic = inc.value;

var str = "";

function me(){
    for(var i=f; i<=s; i=i+ic){

        str+=i;

    }
return document.write(str);}

它總是崩潰

編輯: JSlint說沒有錯誤

如果在事件處理程序外部調用initialize'f = first.value',則不會為f分配任何值,因為代碼是在加載頁面時執行的,而不是在單擊Submit按鈕之后執行的。 “ s”和“ ic”也是如此。

這應該可以解決問題:

function me(){
    var f = parseInt(first.value);
    var s = parseInt(second.value);
    var ic = parseInt(inc.value);
    for(var i = f; i <= s; i = i + parseInt(inc.value)) {
        str += i;
    }
    return document.write(str);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM