在 js_of_ocaml 中,是否可以获取 的子节点Dom_html.element
?
我知道该类继承Dom.node
,因此具有该childNodes
方法。但由于它是 from 的方法Dom.node
,因此它返回Dom.node
类型的值。而且我需要这些节点仍然存在Dom_html.element
,否则大多数方法将不可用。
由于在 OCaml 中无法进行向下转换,因此我找不到任何可能的解决方案来解决此问题。我错过了什么或者这真的不可能吗?
在 js_of_ocaml 中,是否可以获取 的子节点Dom_html.element
?
我知道该类继承Dom.node
,因此具有该childNodes
方法。但由于它是 from 的方法Dom.node
,因此它返回Dom.node
类型的值。而且我需要这些节点仍然存在Dom_html.element
,否则大多数方法将不可用。
由于在 OCaml 中无法进行向下转换,因此我找不到任何可能的解决方案来解决此问题。我错过了什么或者这真的不可能吗?
childNodes
不能作为Dom_html.element
s 的集合键入,因为返回的节点可以并且很可能包括不是element
s 的节点,例如文本节点。
DOM 标准定义了一个属性children
,Element
该属性只会返回元素,但仍然无法让您访问Dom_html.element
. 不幸的是,它似乎也没有包含在 JSOO 的Dom.element
.
您可以使用s安全地强制转换为s 的element
功能,但我认为从to没有任何普遍可靠的方法,因为不幸的是 DOM 的类型过于动态化。Dom.CoerceTo
Dom.node
Dom.element
Dom.element
Dom_html.element
您可能必须tagName
手动检查并(不安全地)使用Js.Unsafe.coerce
.