如何通过类名获取多个正在更改的元素?

问题描述 投票:0回答:2

有人可以帮我吗?我试图通过类名称选择多个元素。直到页面comments文本中间的某处不可用,一切都很好,只有审阅者的姓名和已审阅的产品。如果该特定行不存在该元素,如何设置它以跳过该元素并移至下一行?

编辑:因此,在提出建议后,我尝试使用以下代码,但控制台表示-forEach不是函数。我正在以下页面上运行它:https://www.etsy.com/shop/FamilyshirtsCo/reviews

var productRows = document.getElementsByClassName("div.flag-body pb-xs-0");
productRows.forEach(function(productRow){
var name = productRow.querySelector(".p.shop2-review-attribution");
var comments = productRow.querySelector(".p.prose break-word m-xs-0");
var product = productRow.querySelector(".flag-body hide-xs hide-sm");
var final = product[i].innerText +" | "+ price[i].innerText +" | "+ 
quantity[i].innerText;
console.log(final);
});
javascript getelementsbyclassname dom-selection
2个回答
1
投票

getElementsByClassName返回具有指定类的所有元素,无论其同级元素还是父元素。在这里,您可以为该行的父类提供一些类:

因此html结构如下:

<div class="product-row">
    <div class="product">
        some product
    </div>
    <div class="price">
        some price
    </div>
    <div class="quantity">
        some quantity
    </div>
</div>

Javascript:

var productRows = document.getElementsByClassName("product-row");
productRows.forEach(function(productRow){
    var product = productRow.querySelector(".product");
    var price = productRow.querySelector(".price");
    var quantity = productRow.querySelector(".quantity");
    var order = product[i].innerText +" | "+ price[i].innerText +" | "+ quantity[i].innerText;
    console.log(order);
});

我希望这能解决您的问题


0
投票

必须是for循环,而不是forEach。这是HTMLCollection而不是简单的数组。

var productRows = document.getElementsByClassName("product-row");

for ( var x = 0; x < productRows.lenght; x++) {
 var product = productRows[x].querySelector(".product");
 var price = productRows[x].querySelector(".price");
 var quantity = productRows[x].querySelector(".quantity");
 var order = product[i].innerText + " | " +
   price[i].innerText + " | " +
   quantity[i].innerText;
   
 console.log(order);
};
 <div class="product-row">
        <div class="product">
            some product
        </div>
        <div class="price">
            some price
        </div>
        <div class="quantity">
            some quantity
        </div>
    </div>
© www.soinside.com 2019 - 2024. All rights reserved.