1

在 js_of_ocaml 中,是否可以获取 的子节点Dom_html.element

我知道该类继承Dom.node,因此具有该childNodes方法。但由于它是 from 的方法Dom.node,因此它返回Dom.node类型的值。而且我需要这些节点仍然存在Dom_html.element,否则大多数方法将不可用。

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

4

1 回答 1

1

childNodes不能作为Dom_html.elements 的集合键入,因为返回的节点可以并且很可能包括不是elements 的节点,例如文本节点。

DOM 标准定义了一个属性childrenElement该属性只会返回元素,但仍然无法让您访问Dom_html.element. 不幸的是,它似乎也没有包含在 JSOO 的Dom.element.

您可以使用s安全地强制转换为s 的element功能,但我认为从to没有任何普遍可靠的方法,因为不幸的是 DOM 的类型过于动态化。Dom.CoerceToDom.nodeDom.elementDom.elementDom_html.element

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

于 2019-07-01T08:41:19.050 回答