Javascript不起作用

Javascript不起作用,javascript,input,getelementsbytagname,Javascript,Input,Getelementsbytagname,我想从我的网站获取所有输入,并在警报消息中显示它们。 但是,这个脚本似乎工作不正常,只显示第一个输入元素 我该怎么办 function dotest() { var inputs = document.getElementsByTagName("input"); if (inputs.length > 0) { var s = document.URL + "\n"; s += "-- Inputs list start --\n";

我想从我的网站获取所有输入,并在警报消息中显示它们。 但是,这个脚本似乎工作不正常,只显示第一个输入元素

我该怎么办

function dotest() {
    var inputs = document.getElementsByTagName("input");
    if (inputs.length > 0) {
        var s = document.URL + "\n";
        s += "-- Inputs list start --\n";
        for (var i = 0; i < inputs.length; i++) {
            var inputdata = inputs[i];
                var imputdatas = null;
                imputdatas += inputdata.name + ",";
                imputdatas += inputdata.id + ",";
                imputdatas += inputdata.type + ",";
                imputdatas += inputdata.value + "\n";
        }
        s += imputdatas;
        s += "-- End -\n\n";
    }
    if (s) {
        alert(s);
    }
}
dotest();
将它们全部添加到循环内的s,而不是循环后的s

function dotest() {
    var inputs = document.getElementsByTagName("input");
    if (inputs.length > 0) {
        var s = document.URL + "\n";
        s += "-- Inputs list start --\n";
        for (var i = 0; i < inputs.length; i++) {
            var inputdata = inputs[i];
            var imputdatas = '';
                imputdatas += inputdata.name + ",";
                imputdatas += inputdata.id + ",";
                imputdatas += inputdata.type + ",";
                imputdatas += inputdata.value + "\n";
            s += imputdatas;
        //  ^^^ needs to be here
        }
        s += "-- End -\n\n";
    }
    if (s) {
        alert(s);
    }
}

他为什么要这样做?@ProllyGeek-看起来很明显,我没有再解释它,一旦循环完成,循环中的局部变量中只存在最后一个元素。我没看到它是局部变量,抱歉for循环中确实没有作用域,所以变量被提升,但点仍然是一样的,循环每次都设置一个新的值。这真的是你能想到的最好的标题吗?@Pointy Sorry。下次我会小心的。