我试图在某个页面的控制台中运行此命令
document.getElementsByTagName("*").filter(function(element) {return element.scrollTop && element.scrollTop>0})
并收到错误
Uncaught TypeError: document.getElementsByTagName(...).filter is not a function
返回值的类型为NodeList
,显然为"is not an array"。这很酷,但它是什么?
更新
以下一行
document.getElementsByTagName("*").forEach(function(element) {if( element.scrollTop && element.scrollTop>0) console.log(element);});
也会导致相同的错误,因此getElementsByTagName()
函数不会返回包含forEach()
方法的内容。
答案 0 :(得分:1)
谁负责维护这些课程的文档?
Worldwide Web Consortium。请参阅https://www.w3.org/TR/dom/#old-style-collections:-nodelist-and-htmlcollection。
正如其他人所提到的,MDN也是通常可靠的良好文档来源。
此处还有很多关于SO的信息。例如,搜索"堆栈溢出getelementsbytagname foreach"马上就出现了这个问题:JavaScript: Loop through all the elements returned from getElementsByTagName。