javascript getElementsByClassName值错误

时间:2013-04-21 11:58:03

标签: javascript class get

我在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>

3 个答案:

答案 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);