使用getElementByClassName构建对象数组

时间:2013-08-24 06:03:23

标签: javascript html

我正在使用getElementsByClassName来收集tr

我想现在遍历集合并获取tr中文本框的值。

我不能使用JQuery来执行此操作或任何其他框架。

如何做到这一点?

var dom = document.getElementsByClassName('Row');
var arr = [];
var len = dom.length;
for (var i = 0; i < len; i++) {
   // foo = look up value of a text box in this row 
   // bar = look up value of a text box in this row 
   var obj = {
   quantity: foo,
   price: bar
   };
 arr.push(obj);
}

1 个答案:

答案 0 :(得分:2)

首先,它是getElementsByClassName,带有's' - 它可以获得多个元素,因此它的名称是复数。

其次,getElementsByClassName不是它自己的函数,它是DOM对象的一个​​方法。

如果您想要获取文档中与给定类名相匹配的所有元素,则必须自行调用document.getElementsByClassName(),而不仅仅是getElementsByClassName()

所以你需要这样做:

var dom = document.getElementsByClassName('Row');

您从此获取的dom对象中的元素也具有与根document对象相同的方法,您可以调用dom[i].getElementsByClassName()等。

例如,为了获取其中的所有textarea元素,您可以执行dom[i].getElementsBtTagName('textarea')

这应该有助于你前进。