点击文档时检测是否点击含data-action="inc"属性按钮的代码问题
检测点击带有
data-action="inc"的按钮问题修复 你的代码始终返回false是因为两个关键错误:
hasAttribute()的参数使用错误:它仅接受属性名称(比如data-action),不能传入选择器语法[data-action='inc']- 未处理
e.target.closest('button')返回null的情况:点击非按钮区域时,这个方法会返回null,直接调用hasAttribute会触发报错
以下是两种正确的实现方式:
方式一:通过dataset判断属性值
document.addEventListener('click', (e) => { const targetBtn = e.target.closest('button'); // 先确认找到按钮,再检查data-action的值是否为inc const isIncButton = targetBtn && targetBtn.dataset.action === 'inc'; console.log(isIncButton); });
方式二:直接用选择器匹配目标按钮
document.addEventListener('click', (e) => { // 直接查找是否存在符合条件的祖先按钮 const isIncButton = e.target.closest('button[data-action="inc"]') !== null; console.log(isIncButton); });
内容的提问来源于stack exchange,提问作者Anon
相关产品推荐
相关产品推荐

