事件变量未定义求助:title变量无法正常定义
问题解决:title变量未定义的修复方案
你的代码里有两处明显错误导致title变量无法正常定义:
- 变量拼写错误:JS是大小写敏感的,你前面定义的商品容器变量是
shopItem,但获取title时写成了storeitem,这个未定义的变量直接触发报错。 - 控制台输出错误:你用
console.log('title')打印的是字符串"title",而不是你定义的title变量,无法看到实际的商品名称值。
修正后的JavaScript代码:
var addToCartButtons = document.getElementsByClassName('item-button') for (var i = 0; i < addToCartButtons.length; i++) { var button = addToCartButtons[i] button.addEventListener('click', addToCartClicked) } function addToCartClicked(event) { var button = event.target var shopItem = button.parentElement.parentElement var title = shopItem.getElementsByClassName('product-name')[0].innerHTML console.log(title) }
修复后逻辑说明:点击"ADD TO CART"按钮时,先触发事件获取当前按钮元素,通过两次parentElement定位到外层的.store-item容器,再在该容器内找到.product-name元素并获取其文本内容,最后在控制台打印出正确的商品标题。
内容的提问来源于stack exchange,提问作者Frostishyper03
相关产品推荐
相关产品推荐

