![](/img/trans.png)
[英]Return more than one values from a function in Javascript using for loop
[英]How to display more than one time in JavaScript using for loop
我在W3学校学习JS,遇到了这个检查属性长度的程序。 后来我修改了它以显示元素具有的属性的名称。 这是代码
function myFunction() { for (var counter = 0; counter < 2; counter++) var a = document.getElementById("myBtn").attributes[counter].name; document.getElementById("output").innerHTML = a; }
<html> <body> <p>Click the button to see how many attributes the button element have.</p> <p id="output"> </p> <button id="myBtn" onclick="myFunction()">Try it</button> </body> </html>
我希望O / P为:
id onclick
但是由于某种原因,它仅显示元素拥有的最后一个属性,在这种情况下,如果元素是类或其他内容,则它会显示其onclick 。
是什么原因呢?
您的代码中有一个非常简单的错误。 您的代码将首先将<p>
元素的innerHTML设置为“ id”。 然后,它将使用下一个属性(即“ onclick”)覆盖它。 要解决此问题,请更改
document.getElementById('output').innerHTML = a
至
document.getElementById('output').innerHTML += a + "<br>"
<br>
只是将属性彼此分开。 这是整个代码段:
function myFunction() { for (var counter = 0; counter < 2; counter++) { var a = document.getElementById("myBtn").attributes[counter].name; document.getElementById("output").innerHTML += a + "<br>"; } }
<html> <body> <p>Click the button to see how many attributes the button element have.</p> <p id="output"> </p> <button id="myBtn" onclick="myFunction()">Try it</button> </body> </html>
尝试以下
function myFunction() {
var a="";
for (var counter = 0; counter < 2; counter++){
a+= document.getElementById("myBtn").attributes[counter].name;
}
document.getElementById("output").innerHTML = a;
}
您的代码显示最后一个设置为a的值。 并且您没有将属性名称追加/添加到,而是使用覆盖了
var a = ....
目前,您需要a
每次循环运行时重新分配a
( var a = ...
):
function myFunction() {
for (var counter = 0; counter < 2; counter++) {
var a = document.getElementById("myBtn").attributes[counter].name;
}
document.getElementById("output").innerHTML = a;
}
这意味着a
最终是最后一个项目。
也许改为将每个属性添加到数组中:
function myFunction() {
var arr = [];
for (var counter = 0; counter < 2; counter++) {
arr.push(document.getElementById("myBtn").attributes[counter].name);
}
document.getElementById("output").innerHTML = arr.join(' ');
}
另外,在您的示波器所在的位置使用花括号。 你想要的output
是在循环之后 。
发生这种情况是因为您更改了元素的innerHTML,这意味着您更改了该元素的整个HTML。
要执行所需的操作,可以将结果连接到当前的innerHTML上,或创建元素并在其中添加值,然后将其附加到文档中。
例如:
var output = document.getElementById('output');
output.innerHTML = output.innerHTML + ' - ' + a;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.