@@ -26,6 +26,8 @@ module Web.DOM.Element
2626 , getAttribute
2727 , hasAttribute
2828 , removeAttribute
29+ , matches
30+ , closest
2931 , scrollTop
3032 , setScrollTop
3133 , scrollLeft
@@ -51,7 +53,8 @@ import Web.DOM.DOMTokenList (DOMTokenList)
5153import Web.DOM.Internal.Types (Element ) as Exports
5254import Web.DOM.Internal.Types (Element , HTMLCollection , Node )
5355import Web.DOM.NonDocumentTypeChildNode (NonDocumentTypeChildNode )
54- import Web.DOM.ParentNode (ParentNode )
56+ import Web.DOM.ParentNode (QuerySelector ) as Exports
57+ import Web.DOM.ParentNode (ParentNode , QuerySelector )
5558import Web.DOM.ShadowRoot (ShadowRoot , ShadowRootMode )
5659import Web.Event.EventTarget (EventTarget )
5760import Web.Internal.FFI (unsafeReadProtoTagged )
@@ -121,6 +124,13 @@ foreign import _getAttribute :: String -> Element -> Effect (Nullable String)
121124foreign import hasAttribute :: String -> Element -> Effect Boolean
122125foreign import removeAttribute :: String -> Element -> Effect Unit
123126
127+ foreign import matches :: QuerySelector -> Element -> Effect Boolean
128+
129+ closest :: QuerySelector -> Element -> Effect (Maybe Element )
130+ closest qs = map toMaybe <<< _closest qs
131+
132+ foreign import _closest :: QuerySelector -> Element -> Effect (Nullable Element )
133+
124134foreign import scrollTop :: Element -> Effect Number
125135foreign import setScrollTop :: Number -> Element -> Effect Unit
126136
0 commit comments