我找不到与document.getElementsByClassName
等效的js_of_ocaml。什么是规范的方式?document.getElementsByClassName的等价物
编辑:我正在使用js_of_ocaml v2.5。
我找不到与document.getElementsByClassName
等效的js_of_ocaml。什么是规范的方式?document.getElementsByClassName的等价物
编辑:我正在使用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列表。
我需要的功能也几个星期前,我做了一个PR https://github.com/ocsigen/js_of_ocaml/pull/312
好的,谢谢,我以为那里已经有某种魔法机制了。 :) – Antoine
为了增加2分其他的答案,这是正确的,在js_of_ocaml拉请求添加此方法将受到欢迎。 :) – Drup