javascript - 从Javascript中的当前事件获取最近的祖先

标签 javascript dom ecmascript-6

我无法选择最接近的 <tr>来自点击事件的元素。

目前,为了让它工作,我从 event.path 中选择了列表中的确切数量的元素。 .

我希望它更灵活,而不需要依赖于当前路径位置编号。

HTML:

<tr>
  <td class="col-site">Stringname</td>
</tr>

JavaScript:

event.path[1].classList.add(this.openedClassState);

使用 event.closest('tr') 不工作,我得到这个错误:

Uncaught TypeError: event.closest is not a function

有人知道为什么吗?

最佳答案

您似乎在调用 event.closest,这似乎不对。您是要执行 element.closest 还是 event.target.closest

function handleClick(event) {
  const tr = event.target.closest('tr');
  tr.style.backgroundColor = 'red';
}


document.querySelectorAll('td').forEach(td => 
  td.addEventListener('click', handleClick));
td{border:1px solid blue}
<table>
  <tr>
    <td>Click</td>
    <td>me</td>
  </tr>
</table>

关于javascript - 从Javascript中的当前事件获取最近的祖先,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46837048/

相关文章:

javascript - 以编程方式在 <canvas> 的 fillStyle 中使用 RGBa 值?

javascript - 如何使用 Javascript 从移动站点链接到完整站点而不重定向回移动站点

javascript - 使用 JavaScript 更改表单中 h1 元素的值

javascript - 在没有 jQuery 的情况下获取 HTML 中的选定选项

javascript - 更好地理解 Promise.prototype.then

javascript - 将 ES6 对象的方法从一个对象动态附加到另一个对象

javascript - React Navigation 从自定义标题中的按钮导航到新屏幕

javascript - 如何让 MutationObserver 多次工作?

javascript - 使用 Aurelia 将数据和文件发布到 ASP.NET webapi

javascript - 设置/获取文本节点值的方法