javascript - 使用 getElementByClassName 构建对象数组

标签 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);
}

最佳答案

首先,它是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/

相关文章:

javascript - 使用 discord.js 收集对消息使用react的用户

javascript - 对象的克隆继承对第一个对象所做的 future 更改

javascript - 谷歌脚本错误: "Incorrect range width" when using setValues

html - 延迟此 CSS 淡入

javascript - 显示登录或输入相关内容的图层的最佳方式? [facebook 弹出样式]

javascript - 获取是否在 jquery/ES6 中选中复选框

javascript - 将 JSON 对象转换为 html 字符串

javascript - 在 Angular Controller 中使用 moment-duration-format 插件

javascript - 如果仅通过动画而不是正常调整大小来更改字体大小,如何使浏览器不换行?

javascript - HTML 中多个表中同一列的相同 [不固定] 宽度