为什么这些代码卡住了,不起作用(javascript)

时间:2018-03-03 12:07:04

标签: for-loop error-handling addeventlistener getelementbyid

这个简单的代码让我发疯。 它不适用于任何浏览器或JSFiddle。该页面不会响应并卡住。

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

HTML:

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);}

JS:

carving_skis = [{"Product":names[i], "Brand":brands[i],"Price":prices[i],"Sizes":avail_sizes[i]} for i in range(len(avail_sizes))]

它总是崩溃

编辑: JSlint说没有错误

1 个答案:

答案 0 :(得分:1)

如果在事件处理程序之外调用初始化'f = first.value',则不会为f分配任何值,因为代码在加载页面时执行,而不是在您单击提交按钮后执行。与'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);
}