javascript - 如何使用 typescript 获取 addEventListener 中的下一个同级

标签 javascript typescript

我正在尝试获取被单击元素的下一个同级元素,并且我正在使用 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
  });
}

但是,由于 thisElement 而不是 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/

相关文章:

javascript - 尝试添加和删除克隆不知何故不起作用?

typescript - 如何只加载一次字体? (TS/三.JS)

typescript - 可调用的 typescript 接口(interface)不可调用?

javascript - 为什么数组的 Observable 和订阅者不起作用?

angular - 如何使用 Electron 更新程序自动更新 Electron 应用程序?

typescript - 如果我不使用放大,如何从 AppSync GraphQL 模式生成 Typescript 定义?

javascript - 覆盖 -webkit-search-cancel-button

javascript - 用 Promise 包装 $.ajax 无法解决

javascript - 输入 js 验证并将输入的用户数据存储在 cookie 中

javascript - JavaScript 中的 .clientWidth/.width 不适用于 img 标签