我找不到与document.getElementsByClassName
相当的js_of_ocaml。什么是规范的方法?
编辑:我正在使用js_of_ocaml v2.5。
答案 0 :(得分:1)
它似乎不存在。
我能找到的最接近的是使用className
元素DOM_html
元素DOM_svg
}和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
的{{1}}属性。然后,您可以遍历集合并获取所需的元素。
这是我搜索过的docs。
然而,DOM文档类的getElementById和getElementBy标记名称如docs所示。
public abstract class Animal {
Animal() {
born();
}
abstract void born();
}
public abstract class Human extends Animal {
@Override
void born() {
System.out.println("Human is born.");
}
}
-keep public class test.Human {
public *;
}
答案 1 :(得分:1)
您可以编写一个直接调用它的函数:
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列表。
答案 2 :(得分:1)
我几周前也需要这个功能,所以我做了一个PR https://github.com/ocsigen/js_of_ocaml/pull/312