我正在尝试获取被单击元素的下一个同级元素,并且我正在使用 typescript 。这是我的代码。
let jobRowList = document.getElementsByClassName('job-item');
for(let i = 0; i < jobRowList.length; i++) {
// add event listener for each element with class name job-item
let jobRow = jobRowList.item(i);
jobRow.addEventListener('click', (ev) => {
console.log(this.nextSibling); // error
});
}
但是,由于 this
是 Element
而不是 HTMLElement
,因此它没有名为 nextSibling
的属性>,所以 typescript 在这里抛出一个错误。
TS2339: Property 'nextSibling' does not exist on type 'JobListTable'.
有什么方法可以使用 typescript 获取单击元素的 nextSibling 吗?
最佳答案
箭头函数中的
this
并不引用单击的元素。您可以删除箭头函数并使用普通函数 - 但是使用箭头,您可能正在寻找
ev.currentTarget.nextElementSibling
<小时/>
jobRow.addEventListener('click', (ev) => {
console.log(ev.currentTarget.nextElementSibling);
});
关于javascript - 如何使用 typescript 获取 addEventListener 中的下一个同级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45915215/