aboutsummaryrefslogtreecommitdiff
path: root/src/Dom/Element.ml
diff options
context:
space:
mode:
Diffstat (limited to 'src/Dom/Element.ml')
-rw-r--r--src/Dom/Element.ml32
1 files changed, 31 insertions, 1 deletions
diff --git a/src/Dom/Element.ml b/src/Dom/Element.ml
index 4b38fa9..0b6c0bd 100644
--- a/src/Dom/Element.ml
+++ b/src/Dom/Element.ml
@@ -1,14 +1,44 @@
external setValue : Dom.element -> string -> unit = "value" [@@bs.set]
-external setInnerText : Dom.element -> string -> unit = "innerText" [@@bs.set]
+external setTextContent : Dom.element -> string -> unit = "textContent"
+ [@@bs.set]
external setStyle : Dom.element -> string -> unit = "style" [@@bs.set]
external setClassName : Dom.element -> string -> unit = "className" [@@bs.set]
+external setScrollTop : Dom.element -> int -> unit = "scrollTop" [@@bs.set]
+
external setAttribute : Dom.element -> string -> string -> unit = "setAttribute"
[@@bs.send]
+external setAttributeNS : Dom.element -> string -> string -> string -> unit
+ = "setAttributeNS"
+ [@@bs.send]
+
external addEventListener : Dom.element -> string -> (Dom.event -> unit) -> unit
= "addEventListener"
[@@bs.send]
+
+external appendChild : Dom.element -> Dom.element -> unit = "appendChild"
+ [@@bs.send]
+
+external firstChild : Dom.element -> Dom.element Js.Nullable.t = "firstChild"
+ [@@bs.get]
+
+external removeChild : Dom.element -> Dom.element -> unit = "removeChild"
+ [@@bs.send]
+
+let removeFirstChild element =
+ match Js.toOption (firstChild element) with
+ | Some child ->
+ let () = removeChild element child in
+ true
+ | _ -> false
+
+let rec removeChildren element =
+ if removeFirstChild element then removeChildren element else ()
+
+let mountOn base element =
+ let () = removeChildren base in
+ appendChild base element