我按钮的addEventListener属性使我的if / else语句不起作用
(from other function) document.getElementsByClassName('btn-purchase')[0].addEventListener('click', purchaseClicked);
function purchaseClicked() {
if (document.getElementsByClassName('cart-items')[0].hasChildNodes()){
alert('Thanks!')
window.open("payment.html","_self");
}
else {
alert("There is nothing in your cart!");
}
}
在购物车为空时单击按钮时,应该提醒用户购物车中没有任何东西,但是,购物车仅使用true语句而不是false语句进行操作。
答案 0 :(得分:0)
看起来获取按钮元素的方式没有问题,但是请确保其html在DOM中,并且在按钮标签上正确指定了类名。如果您想对其进行更多调试,请尝试将按钮元素分配给变量,然后使用“调试器”查看其中发生的情况。
例如
let button = document.getElementsByClassName('btn-purchase')[0];
debugger;
if (button) {
button.addEventListener('click', purchaseClicked);
}
document.getElementsByClassName('btn-purchase')[0].addEventListener('click', purchaseClicked);
function purchaseClicked() {
alert("this works");
}
<button class="btn-purchase">Click me</button>