I can't find a js_of_ocaml equivalent of document.getElementsByClassName
. What is the canonical way to do?
EDIT : I'm using js_of_ocaml v2.5.
I can't find a js_of_ocaml equivalent of document.getElementsByClassName
. What is the canonical way to do?
EDIT : I'm using js_of_ocaml v2.5.
It doesn't seem to exist.
The closest I can find to that is by using the className
attribute of DOM_html
elements (docs) and DOM_svg
elements (docs). You can then iterate through the collection and get the element you want.
This was taken from method index which I searched through.
The DOM document class however does have getElementById and getElementBy tag name as shown 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
I needed that function too some weeks ago, so I made a PR https://github.com/ocsigen/js_of_ocaml/pull/312
You can write a function that will call it directly:
The signature is based on the signature of
Dom.document##getElementsByTagName
. The type constraints are necessary for type-safe usage.You can use it like this:
You may want to change the interface so it takes an OCaml string, in the style of the
Dom_html.getElementById
. Then, maybe you should also make it return an OCaml list.