我试过了:
let $inputsCollection:HTMLCollection = document.body.querySelectorAll('input');
let $inputsCollection:HTMLCollection = document.body.querySelectorAll('input') as HTMLCollection;
let $inputsCollection = document.body.querySelectorAll('input') as HTMLCollection;
我尝试了几种方法,但都没有效果。
答案 0 :(得分:3)
querySelectorAll
不会返回HTMLCollection
而是NodeList
。尝试将NodeList
转换为HTMLCollection
毫无意义。你可以这样做:
let $inputsCollection: NodeListOf<HTMLInputElement> =
document.body.querySelectorAll('input');
上述情况使用HTMLInputElement
,因此列表中的所有元素都必须来自HTML中的input
个元素。对于您从查询中获取异构元素的情况,您可以执行以下操作:
let $inputsCollection: NodeListOf<Element> =
document.body.querySelectorAll('*');
这甚至允许除Element
个对象之外的其他类型的节点,但querySelectorAll
不能返回这样的节点:
let $inputsCollection2: NodeList = document.body.querySelectorAll('*');
仅供参考,返回HTMLCollection
个对象的方法是.getElementsBy...
方法系列(.getElementsByClassName
,.getElementsByTagName
等。)