我正在尝试获取被点击的元素的下一个兄弟,我正在使用打字稿。这是我的代码。
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?
答案 0 :(得分:1)
this
并未引用所单击的元素。您可以删除箭头功能并使用普通功能 - 但是使用箭头,您可能正在寻找
ev.currentTarget.nextElementSibling
jobRow.addEventListener('click', (ev) => {
console.log(ev.currentTarget.nextElementSibling);
});