开发者问题收集

当我使用 .innerText 时,它是未定义的,但是当我不使用时,它不是

2020-04-28
512

因此,我尝试使用 JS 获取 HTML 元素的 innerText ,但当我这样做时,它告诉我我的对象未定义,但如果我要求在没有 .innerText 的情况下进行记录,它不会给我错误,而是给我我试图获取的 <p> 元素的描述!

HTML:

     <div class="rTable"> 
        <div class="rTableRow"> 
            <div class="rTableHead"><strong>Producto</strong></div> 
            <div class="rTableHead"><span style="font-weight: bold;">Preço</span></div> 
            <div class="rTableHead">Quantidade</div> </div>
            <div class="rTableRow"> 
            <div class="rTableCell">T-shirt World</div> 
                <div class="rTableCell">
                    <p class="cart-price">14,99$</p></div> 
            <div class="rTableCell"><input style="width:50px;height: 20px;" type="number" class="quantity" name="quantity" min="1">               
            <button class="btn-danger" >Remover</button></div> </div> 
            <div class="rTableRow"> 
            <div class="rTableCell">T-shirt World</div> 
            <div class="rTableCell"><p class="cart-price">14,99$</p></div> 
            <div class="rTableCell"><input style="width:50px;height: 20px;" type="number" class="quantity" name="quantity" min="1" value="1">               <button class="btn-danger" >Remover</button></div> </div> 
         </div>     

JS:

   function updateCartTotal(){
 var cartItemContainter = document.getElementsByClassName('rTable')[0]
 var cartRows = cartItemContainter.getElementsByClassName('rTableRow')



 for(var i = 0; i<cartRows.length; i++){

     var cartRow = cartRows[i]
     var priceElement = cartRow.getElementsByClassName('cart-price')[0]
     var quantityElement = cartRow.getElementsByClassName('quantity')[0]
     console.log(priceElement,quantityElement)
     var price = priceElement.innerText

     console.log(price)

 }
}
1个回答

错误将出现在第一行。 请检查您的第一行。

<div class="rTableRow"> 
    <div class="rTableHead"><strong>Producto</strong></div> 
    <div class="rTableHead"><span style="font-weight: bold;">Preço</span></div> 
    <div class="rTableHead">Quantidade</div> 
</div>

它有 rTableRow 类,但第一行没有“cart-price”和“quantity”元素。 如果您更改第一行(标题行)的类名,则不会出现错误。

2020-04-28