我在javascript popUp中有一个小功能,我想知道getElementByClassName函数是否返回一个包含该类的所有元素的数组,而不是为什么当我警告它时说对象Html输入元素尽管我的表单编号里面有什么字段(空格或某个数字)。那么我如何从该数组中获取值。
var arr = document.getElementsByClassName('num');
function popUp(){
for(var i = 0;i < arr.length;i++){
alert(arr[i]);
}
}
这是HTML:
<form id = "matrix">
<input type = "number" class = "num" />
<input type = "number" class = "num" />
<input type = "number" class = "num" />
<input type = "number" class = "num" />
<input type = "button" value = "count" id = "count" onclick = "popUp()"/>
</form>
</div>
答案 0 :(得分:2)
使用.value
喜欢
alert(arr[i].value);
如果您需要与IE8兼容,则不应使用
type = "number"
它是HTML5,IE8不支持。
请改用type =“text”。
答案 1 :(得分:1)
document.getElementsByClassName()
返回DOM元素的集合,因此arr[i]
可以获取DOM元素,而不是元素中的元素。如果您想要来自该DOM元素的属性,例如value
标记的input
,那么您必须引用所需的属性,例如.value
:
var arr = document.getElementsByClassName('num');
function popUp(){
for(var i = 0;i < arr.length;i++){
alert(arr[i].value);
}
}
答案 2 :(得分:0)
getElementsByClassName将返回所有匹配的html元素的列表。通过调用alert(arr [i]),您告诉客户端显示元素,而不是它的值,这就是警报消息告诉您它是html输入的原因。要显示元素的值,请使用以下
alert(arr[i].value);