我正在使用 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);
}
最佳答案
首先,它是getElementsByClassName
,带有一个“s”——它可以获取多个元素,因此它的名称是复数。
其次,getElementsByClassName
本身并不是一个函数,它是 DOM 对象上的一个方法。
如果要获取文档中与给定类名匹配的所有元素,则必须调用 document.getElementsByClassName()
,而不仅仅是 getElementsByClassName()
它自己的。
所以你需要这样做:
var dom = document.getElementsByClassName('Row');
从中返回的 dom
对象中的元素也具有与根 document
对象相同的方法,您可以调用 dom[i ].getElementsByClassName()
等
例如,为了获取其中的所有 textarea
元素,您可以执行 dom[i].getElementsBtTagName('textarea')
。
这应该有助于你继续前进。
关于javascript - 使用 getElementByClassName 构建对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18415500/