Как установить атрибут элемента Dom

Я создал элемент td с помощью вызова, такого как:

  let td = Dom_html.createTd doc in

Теперь я хотел бы установить атрибут для этого объекта. Я попробовал это:

  td#setAttribute (Js.string "colspan") (Js.string "4")

Но я получаю ошибку:

Ошибка: это выражение имеет тип Dom_html.tableCellElement Js.t
У него нет метода setAttribute

1 ответ

Решение

Простая черта # используется для доступа к методу объекта 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 в вашем случае.

Другие вопросы по тегам