我找不到與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