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。下次我会小心的。