获得 children 个,共 Dom_html.element 个

Get children of Dom_html.element

在js_of_ocaml中,是否可以得到Dom_html.element的child个节点?

我知道class继承了Dom.node,因此有了childNodes方法。但由于它是来自 Dom.node 的方法,它 returns 值 Dom.node 类型。我需要那些节点仍然是 Dom_html.element,否则大多数方法将不可用。

由于在 OCaml 中无法进行向下转换,因此我找不到任何可能的解决方案。我是不是遗漏了什么或者这真的不可能吗?

childNodes 不能输入为 Dom_html.element 的集合,因为节点 returned 可以并且很可能包含不是 element 的节点]s,例如文本节点。

DOM 标准在 Element 上定义了 属性 children,它只会 return 元素,但仍然无法让您Dom_html.element。不幸的是,它似乎也没有包含在 JSOO 的 Dom.element.

你可以使用Dom.CoerceToelement函数来安全地将Dom.nodes强制转换为Dom.elements,但我认为没有任何普遍可靠的方法从 Dom.elementDom_html.element,因为不幸的是 DOM 过于动态类型。

您可能必须手动检查 tagName 并(不安全地)使用 Js.Unsafe.coerce.

进行转换