Эквивалент document.getElementsByClassName

Я не могу найти эквивалент js_of_ocaml document.getElementsByClassName, Что такое канонический способ сделать?

РЕДАКТИРОВАТЬ: я использую js_of_ocaml v2.5.

3 ответа

Мне тоже понадобилась эта функция несколько недель назад, поэтому я сделал пиар https://github.com/ocsigen/js_of_ocaml/pull/312

Вы можете написать функцию, которая будет вызывать ее напрямую:

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.

Кажется, не существует.

Наиболее близким я могу найти, используя className атрибут DOM_html элементы ( документы) и DOM_svg элементы ( документы). Затем вы можете перебрать коллекцию и получить нужный элемент.

Это было взято из индекса метода, который я искал.

Однако класс документа DOM имеет имя тега getElementById и getElementBy, как показано здесь.

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

Другие вопросы по тегам