javascript - 如何在从 html 集合创建的数组中通过 for 循环从对象中获取元素的值?

标签 javascript html

我有几个具有相同类名的 div,其中有许多元素我需要值(例如数字)来检查与另一个值是否相等,但我的方法不起作用。

首先,我得到了我想要的所有 div 的 html 集合。 我将 html 集合转换为数组,因此我可以遍历它。

var divCol = document.getElementsByClassName("test");
var arr = Array.prototype.slice.call( divCol );

for (var i = 0, len = arr.length; i < len; i++) {
    var again=arr[i];
    var pSize=again[i].getElementsByClassName("product_size").value;
    alert (pSize);
    [...]
            }

为了测试索引 i 处的 div 的“product_size”段落中存储的内容,我在 pSize 上使用了一个警报,但它说 pSize 未定义。

最佳答案

jsfiddle

假设您有类似这样的 HTML:

<div class="test"><p class="product_size">Lorem Ipsum 1</p></div>
<div class="test"><p class="product_size">Lorem Ipsum 2</p></div>
<div class="test"><p class="product_size">Lorem Ipsum 3</p></div>
<div class="test"><p class="product_size">Lorem Ipsum 4</p></div>

你可以这样做:

let divCol = document.getElementsByClassName('test');
let arr = Array.prototype.slice.call(divCol);

for (let i = 0; i < arr.length; i++) {
    console.log(arr[i].firstChild.textContent);
}

定位每个 div 元素中的第一个子元素,这将是一个段落,然后获取该元素的 textContent,即段落文本。

控制台输出:

Lorem Ipsum 1
Lorem Ipsum 2
Lorem Ipsum 3
Lorem Ipsum 4

Get paragraph text inside an element
nodeValue vs innerHTML and textContent. How to choose?

关于javascript - 如何在从 html 集合创建的数组中通过 for 循环从对象中获取元素的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54263061/

相关文章:

javascript - JAVA 使用 Selenium 时如何禁用 Javascript?

javascript - 检查 PropTypes 是否是有效的 JSON

javascript - 如何使 jQuery 中的悬停功能单独应用于数据库图像?

html - 当我可以使用自己的标签时,为什么要使用 "class="?

html - 使用 CSS/CSS3 如何构建流体列布局,其中不同高度的元素出现在上面的元素附近?

css - 将替代样式表应用于手持设备,无法正常工作

javascript - 调用 Stripe 时 Firebase 函数出错

javascript - 弹出对话框偏移了太多像素

html - 我的 HTML 文件 "Portfolio"部分有很大空间

html - Jquery 同位素 masonry 布局在 Bootstrap 3 中的元素之间留下间隙