获得 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.CoerceTo
的element
函数来安全地将Dom.node
s强制转换为Dom.element
s,但我认为没有任何普遍可靠的方法从 Dom.element
到 Dom_html.element
,因为不幸的是 DOM 过于动态类型。
您可能必须手动检查 tagName
并(不安全地)使用 Js.Unsafe.coerce
.
进行转换
在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.CoerceTo
的element
函数来安全地将Dom.node
s强制转换为Dom.element
s,但我认为没有任何普遍可靠的方法从 Dom.element
到 Dom_html.element
,因为不幸的是 DOM 过于动态类型。
您可能必须手动检查 tagName
并(不安全地)使用 Js.Unsafe.coerce
.