我创建了一个带有调用的td元素,例如:
let td = Dom_html.createTd doc in
我现在想在这个对象上设置一个属性。我试过这个:
td#setAttribute (Js.string "colspan") (Js.string "4")
但我收到错误:
错误:此表达式的类型为Dom_html.tableCellElement Js.t
它没有方法setAttribute
答案 0 :(得分:2)
简单短划线#
用于访问OCaml对象的方法。
Js_of_ocaml有一个特殊的语法(##
)来处理Javascript对象。
见http://ocsigen.org/js_of_ocaml/2.4/manual/library
设置dom元素的属性:
td##setAttribute(Js.string "key", Js.string "val")
在你的情况下,你应该使用:
td##colSpan <- 4
双击##
将翻译JavaScript字段访问权限。
之前的陈述转换为td.colSpan = 4
。
'a
中的类型参数'a Js.t
是类型检查器用来检查JavaScript字段访问的幻像类型。在你的案例中见http://ocsigen.org/js_of_ocaml/2.4/api/Dom_html.tableCellElement-c。