One of my event’s variables isn’t getting defined.
The title
variable isn’t getting defined so I think I made a mistake.
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 = storeitem.getElementsByClassName('product-name')[0].innerHTML
console.log('title')
}
<div >
<span >CPU 1</span>
<img src="Images/CPU-1.jpg">
<div >
<span >$229.99</span>
<button role="button">ADD TO CART</button>
</div>
</div>
CodePudding user response:
It looks like there is a typo in the addToCartClicked
function. The title variable is defined as storeitem.getElementsByClassName('product-name')[0].innerHTML
, but it should be shopItem
instead of storeitem
. The shopItem
variable is defined earlier in the function as button.parentElement.parentElement
, so changing storeitem
to shopItem
should fix the issue.
Additionally, the console.log statement currently prints the string 'title' instead of the value of the title variable.
CodePudding user response:
Fix your code. you need that shopItem
as discribe above by Mr.Sebastian Simon and Mr.haggbart.
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
// error here 'storeitem' variable is defined.
var title = shopItem.getElementsByClassName('product-name')[0].innerHTML
console.log('title')
console.log(title) // you means title varible
}
<div >
<span >CPU 1</span>
<img src="Images/CPU-1.jpg">
<div >
<span >$229.99</span>
<button role="button">ADD TO CART</button>
</div>
</div>
CodePudding user response:
function addToCartClicked(event) {
var button = event.target
var shopItem = button.parentElement.parentElement
var title = shopItem.getElementsByClassName('product-name')[0].innerHTML
console.log(title)
}