为什么我的浏览器无法读取addEventListener的属性?

时间:2019-01-13 03:25:22

标签: javascript html addeventlistener

我按钮的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语句进行操作。

1 个答案:

答案 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>