Я не могу найти эквивалент js_of_ocaml document.getElementsByClassName
. Каков канонический способ?Эквивалент документа.getElementsByClassName
EDIT: Я использую js_of_ocaml v2.5.
Я не могу найти эквивалент js_of_ocaml document.getElementsByClassName
. Каков канонический способ?Эквивалент документа.getElementsByClassName
EDIT: Я использую js_of_ocaml v2.5.
Это, кажется, не существует.
Ближайший я могу найти это с помощью атрибута DOM_html
элементов (docs) и DOM_svg
элементов (docs) className
. Затем вы можете перебирать коллекцию и получать нужный элемент.
Это было взято с method index, которое я искал.
Класс документа DOM, однако, имеет имя тега getElementById и getElementBy, как показано here.
method getElementById : Js.js_string Js.t -> 'element Js.t Js.opt Js.meth
method getElementsByTagName : Js.js_string Js.t -> 'element nodeList Js.t Js.meth
Вы можете написать функцию, которая будет вызывать его непосредственно:
let getElementsByClassName (name : Js.js_string Js.t)
: Dom_html.element Dom.nodeList Js.t =
Js.Unsafe.meth_call
Dom_html.document "getElementsByClassName" [|Js.Unsafe.inject name|]
подпись основана на подписи Dom.document##getElementsByTagName
. Ограничения типа необходимы для безопасного использования типа.
Вы можете использовать его как это:
getElementsByClassName (Js.string "control")
Вы можете изменить интерфейс таким образом он принимает строку OCaml, в стиле Dom_html.getElementById
. Затем, возможно, вам также следует вернуть список OCaml.
я нуждался в этой функции тоже несколько недель назад, так что я сделал пиар https://github.com/ocsigen/js_of_ocaml/pull/312
Хорошо спасибо, я думал, что там есть какой-то волшебный механизм. :) – Antoine
Чтобы добавить 2 другие ответы, которые правильно, запрос тянуть на js_of_ocaml, чтобы добавить этот метод будет приветствоваться. :) – Drup