我正在寻找一种方法来获取javascriptHTMLElement中的所有孩子。HTMLElement我使用过childNodes,但我无法将 aNodeList转换为 an Array.<HTMLElement>,因为它们不是彼此的子类型(我正在使用 Google Closure Compiler 来强制键入)。
这是一个返回警告的示例:
/** @type {Array.<HTMLElement>} */
var kids = /** @type {Array.<HTMLElement>} */ (document.childNodes);
它返回
test.js:2: WARNING - invalid cast - must be a subtype or supertype
from: NodeList
to : (Array.<(HTMLElement|null)>|null)
var kids = /** @type {Array.<HTMLElement>} */ (document.childNodes);
^
因为childNodes不是HTMLElements我能理解警告,但有解决办法吗?
=== 编辑 ===
令人惊讶的是,我将 aNode转换为HTMLElement. 问题来自将 aNodeList转换为Array.<Node>.