summaryrefslogtreecommitdiff
path: root/src/JavaScript
diff options
context:
space:
mode:
Diffstat (limited to 'src/JavaScript')
-rw-r--r--src/JavaScript/Element.hs27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/JavaScript/Element.hs b/src/JavaScript/Element.hs
index 2eac8f2..60f5c65 100644
--- a/src/JavaScript/Element.hs
+++ b/src/JavaScript/Element.hs
@@ -1,8 +1,15 @@
module JavaScript.Element (
Element, IsElement(..),
+
getElementById,
documentQuerySelector,
querySelector,
+
+ createElement,
+ removeElement,
+
+ firstElementChild,
+ lastElementChild,
) where
import JavaScript.Event
@@ -36,3 +43,23 @@ querySelector :: IsElement e => String -> e -> IO (Maybe Element)
querySelector sel e = nullToNothing <$> js_querySelector (toJSVal $ toElement e) (toJSString sel)
foreign import javascript unsafe "$1.querySelector($2)"
js_querySelector :: JSVal -> JSString -> IO JSVal
+
+createElement :: String -> IO Element
+createElement = fmap Element . js_document_createElement . toJSString
+foreign import javascript unsafe "document.createElement($1)"
+ js_document_createElement :: JSString -> IO JSVal
+
+removeElement :: IsElement e => e -> IO ()
+removeElement = js_element_remove . toJSVal . toElement
+foreign import javascript unsafe "$1.remove()"
+ js_element_remove :: JSVal -> IO ()
+
+firstElementChild :: IsElement e => e -> IO (Maybe Element)
+firstElementChild = fmap nullToNothing . js_element_firstElementChild . toJSVal . toElement
+foreign import javascript unsafe "$1.firstElementChild"
+ js_element_firstElementChild :: JSVal -> IO JSVal
+
+lastElementChild :: IsElement e => e -> IO (Maybe Element)
+lastElementChild = fmap nullToNothing . js_element_lastElementChild . toJSVal . toElement
+foreign import javascript unsafe "$1.lastElementChild"
+ js_element_lastElementChild :: JSVal -> IO JSVal