聚焦一个 NodeList 元素
Focus a NodeList element
NodeList
项没有 focus
方法。不过我看过几篇字面写成nodeList[index].focus()
的文章,应该是不对吧?
我们如何聚焦 NodeList 中的元素?
let nodeList:NodeList = el.nativeElement.querySelectorAll('a');
...
nodeList[0].focus(); // Property 'focus' does not exist on type 'Node'
(nodeList[0] as HTMLElement).focus(); // doesn't work
NodeList
类型不够窄;您必须指定它是 HTMLElement
的节点列表。您可以使用 NodeListOf<HTMLElement>
类型执行此操作:
let nodeList: NodeListOf<HTMLElement> = el.nativeElement.querySelectorAll('a');
nodeList[0].focus();
请注意,您也可以让编译器推断 nodeList
的正确类型,而不必显式输入它:
let nodeList = el.nativeElement.querySelectorAll('a');
nodeList[0].focus();
NodeList
项没有 focus
方法。不过我看过几篇字面写成nodeList[index].focus()
的文章,应该是不对吧?
我们如何聚焦 NodeList 中的元素?
let nodeList:NodeList = el.nativeElement.querySelectorAll('a');
...
nodeList[0].focus(); // Property 'focus' does not exist on type 'Node'
(nodeList[0] as HTMLElement).focus(); // doesn't work
NodeList
类型不够窄;您必须指定它是 HTMLElement
的节点列表。您可以使用 NodeListOf<HTMLElement>
类型执行此操作:
let nodeList: NodeListOf<HTMLElement> = el.nativeElement.querySelectorAll('a');
nodeList[0].focus();
请注意,您也可以让编译器推断 nodeList
的正确类型,而不必显式输入它:
let nodeList = el.nativeElement.querySelectorAll('a');
nodeList[0].focus();