let li:Element [] = document.getElementsByTagName(' span');
我收到类型转换错误,如何将值存储在'元素[]' ??
答案 0 :(得分:2)
从document.getElementsByTagName('span')
返回的对象与数组对象不兼容。您需要将其声明如下:
let li: NodeListOf<HTMLElement> = document.getElementsByTagName('span');
如果你真的需要它作为一个数组对象,你可以使用:
let li: NodeListOf<HTMLElement> = document.getElementsByTagName('span');
let liArray: Element[] = Array.prototype.slice.call(li);
答案 1 :(得分:0)
这里的问题是getElementsByTagName
返回一个类似数组的对象,而不是一个实际的数组。您需要先使用扩展运算符(或ES5的[].slice.call(...)
)将其强制转换为其中一个:
let li: HTMLElement[] = [...document.getElementsByTagName('span')]
答案 2 :(得分:0)
尝试先创建变量的隐式形式,然后显式传递此定义:
let li = document.getElementsByTagName('span');//Hover IDE
收件人..
let li: NodeListOf<HTMLSpanElement>= document.getElementsByTagName('span');
然后..
let arr: Element[]
for (let i in li)
arr.push(li[i] as Element)