2015-05-22 45 views
4

我找不到與document.getElementsByClassName等效的js_of_ocaml。什麼是規範的方式?document.getElementsByClassName的等價物

編輯:我正在使用js_of_ocaml v2.5。

+1

爲了增加2分其他的答案,這是正確的,在js_of_ocaml拉請求添加此方法將受到歡迎。 :) – Drup

回答

1

它似乎並不存在。

我能找到到最接近的是通過使用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

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列表。