【发布时间】:2021-02-24 17:57:09
【问题描述】:
我在关注 YouTube 教程,在制作购物车页面时遇到了这个错误,有人知道如何解决这个问题吗?
<!------- js for toggle menu -------->
var MenuItems = document.getElementById("MenuItems");
MenuItems.style.maxHeight = "0px";
function menutoggle() {
if (MenuItems.style.maxHeight == "0px") {
MenuItems.style.maxHeight = "200px";
} else {
MenuItems.style.maxHeight = "0px";
}
}
var removeCartItemsButton = document.getElementsByClassName('remove-danger')
console.log(removeCartItemsButton)
for (var i = 0; i < removeCartItemsButton.length; i++) {
var button = removeCartItemsButton[i]
button.addEventListener('click', function(event) {
var buttonClicked = event.target
buttonClicked.parentElement.parentElement.remove()
updateCartTotal()
})
}
function updateCartTotal() {
var cartItemContainer = document.getElementsByClassName('cart-items')[0]
var cartItems = cartItemContainer.getElementsByClassName('cart-info')
for (var i = 0; i < cartItems.length; i++) {
var cartItems = cartItems[i]
var priceElement = cartItems.getElementsByClassName('cart-price')[0]
var quantityElement = cartItems.getElementsByClassName('cart-quantity-input')[0]
var price = priceElement.innerText
console.log(price)
}
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Cart | Fritz PC's</title>
<link rel="stylesheet" href="style.css">
<link rel="preconnect" href="https://fonts.gstatic.com">
<link href="https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700&display=swap" rel="stylesheet">
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
<script src="cart.js" async></script>
</head>
<body>
<div class="container">
<div class="navbar">
<div class="logo">
<a href="index.html"><img src="images/fritzpclogo.png" width="150px" alt="logo"></a>
</div>
<nav>
<ul id="MenuItems">
<li><a href="index.html"><b>Home</b></a></li>
<li><a href="products.html"><b>Products</b></a></li>
<li><a href=""><b>About</b></a></li>
<li><a href=""><b>Contact</b></a></li>
<li><a href="account.html"><b>Account</b></a></li>
</ul>
<a href="cart.html">
<img src="images/cart.png" width="30px" height="30px">
</a>
<img src="images/menu.png" class="menu-icon" onclick="menutoggle()">
</nav>
</div>
</div>
<!------- cart item details ------->
<div class="small-container cart-page">
<div class="cart-items">
<table>
<tr>
<th>Product</th>
<th>Quantity</th>
<th>Subtotal</th>
</tr>
<tr>
<td>
<div class="cart-info">
<img src="images/r5-3600.jpg">
<div>
<p>Ryzen 5 3600 6C/12T</p>
<small>$69.9</small>
<br>
<button type="button" class="remove remove-danger">Remove</button>
</div>
</div>
</td>
<td><input class="cart-quantity-input" type="number" value="1"></td>
<td class="cart-price">$231.16</td>
</tr>
<tr>
<td>
<div class="cart-info">
<img src="images/r5-3600.jpg">
<div>
<p>Ryzen 5 3600 6C/12T</p>
<small>$99.9</small>
<br>
<button type="button" class="remove remove-danger">Remove</button>
</div>
</div>
</td>
<td><input class="cart-quantity-input" type="number" value="1"></td>
<td class="cart-price">$99.9</td>
</tr>
<tr>
<td>
<div class="cart-info">
<img src="images/r5-3600.jpg">
<div>
<p>Ryzen 5 3600 6C/12T</p>
<small>$49.9 KWD</small>
<br>
<button type="button"class="remove remove-danger">Remove</button>
</div>
</div>
</td>
<td><input class="cart-quantity-input" type="number" value="1"></td>
<td class="cart-price">$49.9</td>
</tr>
<tr>
<td>
<div class="cart-info">
<img src="images/r5-3600.jpg">
<div>
<p>Ryzen 5 3600 6C/12T</p>
<small>$19.9 KWD</small>
<br>
<button type="button" class="remove remove-danger">Remove</button>
</div>
</div>
</td>
<td><input class="cart-quantity-input" type="number" value="1"></td>
<td class="cart-price">$19.9</td>
</tr>
</table>
</div>
<div class="total-price">
<table>
<tr>
<td>Subtotal</td>
<td>239.6 KWD</td>
</tr>
<tr>
<td>Shipping</td>
<td>3 KWD</td>
</tr>
<tr>
<td>Total</td>
<td>242.6 KWD</td>
</tr>
</table>
</div>
</div>
<!------- footer ------->
<div class="footer">
<div class="container">
<div class="row">
<div class="footer-col-1">
<h3>Join our discord server</h3>
<p>Join our discord server if you have any
<br>
doubts or questions :)</p>
<div class="discord-logo">
<img src="images/discord-logo.png">
</div>
</div>
<div class="footer-col-2">
<img src="images/fritzpclogo.png">
<p>Our goal is to make and sell high quality
<br>
Gaming/Streaming PC's with minimum profit</p>
</div>
<div class="footer-col-3">
<h3>Useful links</h3>
<ul>
<li>Coupons</li>
<li>Blog</li>
<li>Return Policy</li>
<li>Join Affiliate</li>
</ul>
</div>
<div class="footer-col-3">
<h3>Follow Us</h3>
<ul>
<li>YouTube</li>
<li>Instagram</li>
<li>Twitter</li>
<li>Discord</li>
</ul>
</div>
</div>
<hr>
<p class="copyright">Copyright 2021 - Fritz PC's</p>
</div>
</div>
</body>
</html>
【问题讨论】:
-
这是我得到的错误:
cart.js:20 Uncaught TypeError: Cannot read property 'innerText' of undefined at updateCartTotal (cart.js:20) at HTMLButtonElement.<anonymous> (cart.js:8) -
很确定这意味着您在价格元素中获得了一个空值:
var price = priceElement.innerText或许可以尝试在该位置使用三元运算符解决这个问题,例如var price = priceElement.innerText ? priceElement.innerText : 0
标签: javascript html css