diff options
| author | Roman Smrž <roman.smrz@seznam.cz> | 2026-06-28 14:08:43 +0200 |
|---|---|---|
| committer | Roman Smrž <roman.smrz@seznam.cz> | 2026-07-01 21:49:31 +0200 |
| commit | 2573b8a2cae5bf2f3f58aff4135876da7152081d (patch) | |
| tree | 1ab0f28089834a3777e25d055997e5242e1b7c19 /src/JavaScript/Element.hs | |
| parent | 75150152f51b21db78bd3cef70b47a5ec98a4c87 (diff) | |
Create and remove messages from list using newtype wrappers
Diffstat (limited to 'src/JavaScript/Element.hs')
| -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 |