Получить детей Dom_html.element - PullRequest
1 голос
/ 01 июля 2019

В js_of_ocaml возможно ли получить дочерние узлы Dom_html.element?

Я знаю, что класс наследует Dom.node, и поэтому имеет метод childNodes. Но так как это метод из Dom.node, он возвращает значения Dom.node типов. И мне нужно, чтобы эти узлы все еще были Dom_html.element, иначе большинство методов будут недоступны.

Поскольку в OCaml отключение невозможно, я не могу найти никакого решения этой проблемы. Я что-то упустил или это действительно невозможно?

1 Ответ

1 голос
/ 01 июля 2019

childNodes не может быть напечатан как набор из Dom_html.element с, поскольку возвращаемые узлы могут и, вероятно, будут включать узлы, которые не являются element с, например текстовые узлы.

Стандарт DOM определяет свойство children для Element, которое будет возвращать только элементы, но все равно не приведет вас к Dom_html.element.И, к сожалению, он также, похоже, не включен в JSOO Dom.element.

. Вы можете использовать функцию element Dom.CoerceTo, чтобы безопасно привести Dom.node с к Dom.element s, но я не думаю, что есть вообще какой-либо надежный способ перейти от Dom.element к Dom_html.element, потому что DOM, к сожалению, слишком динамически набирается.

Возможно, вам придется проверить tagNameвручную и (небезопасно) разыграть его, используя Js.Unsafe.coerce.

...