1

js_of_ocaml で、の子ノードを取得することは可能Dom_html.elementですか?

Dom.nodeクラスが を継承しているため、childNodesメソッドがあることを知っています。ただし、 のメソッドであるため、型Dom.nodeの値を返しますDom.node。そして、それらのノードをそのままにしておく必要があります。そうしDom_html.elementないと、ほとんどのメソッドが利用できなくなります。

OCaml ではダウンキャストができないため、この問題の解決策が見つかりません。私は何かを見逃していますか、それとも本当に不可能ですか?

4

1 に答える 1

1

childNodesを のコレクションとして型指定することはできません。返されるノードには、テキスト ノードなどのDom_html.elementではないノードが含まれる可能性があり、その可能性が高いためです。element

DOM 標準では、要素のみを返すプロパティchildrenが定義されていますが、それでも. 残念ながら、JSOO の にも含まれていないようです。ElementDom_html.elementDom.element

element関数 ofを使用してs をsDom.CoerceToに安全に強制することはできますが、残念ながら DOM はあまりにも動的に型付けされているため、からに移動するための一般的に信頼できる方法はないと思います。Dom.nodeDom.elementDom.elementDom_html.element

tagNameを手動で確認し、(安全でない) を使用してキャストする必要がある場合がありJs.Unsafe.coerceます。

于 2019-07-01T08:41:19.050 に答える