diff options
Diffstat (limited to 'src/JavaScript')
| -rw-r--r-- | src/JavaScript/Element.hs | 27 |
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 |