我有几个具有相同类名的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);
[...]
}
为了测试div在索引i的“ product_size”段中存储的内容,我在pSize上使用了一个警报,但提示pSize未定义。
答案 0 :(得分:1)
假设您具有与此类似的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?