我无法选择最接近的 <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/