在JavaScript / TypeScript中将Element转换为HTMLElement

7

所以我正在使用querySelectorAll获取与选择器匹配的元素列表,它们存储在NodeList中。

然后我使用forEach循环浏览NodeList,在这一点上,每个individualItem的类型是“Element”。

但是,我将这些individualItem传递给一个名为“doThing()”的函数,该函数期望individualItem的类型为“HTMLElement”(我正在使用typescript)。我想知道是否有一些内置的js函数可以将“Element”类型转换为“HTMLElement”类型,或者如果没有,那么类似的函数会是什么样子。

const h = document.querySelectorAll(someClassString);

h.forEach(individualItem => {
            individualItem.addEventListener(c.EVENT, () => doThing(individualItem));
})    

2个回答

8

要从querySelectorAll获取输出,您可以按照以下方式进行操作:

document.querySelectorAll<HTMLTableElement>('.mytable')

尽管问题的提问者接受了我的答案,但我认为这是最优雅的解决方案。 - undefined

5

既然你正在使用 TypeScript,为什么不将它强制转换为另一种类型?在这里查看更多信息。

const h = document.querySelectorAll(someClassString);

h.forEach(individualItem => {
    individualItem.addEventListener(c.EVENT, () => doThing(individualItem as HTMLElement));
});

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接