From 54fe3b6ec0557941c5759523b36bfdec21003f77 Mon Sep 17 00:00:00 2001 From: Lars Magne Ingebrigtsen Date: Mon, 27 Jun 2016 22:20:29 +0200 Subject: Add new function dom-remove-node * doc/lispref/text.texi (Document Object Model): Document dom-remove-node. * lisp/dom.el (dom-remove-node): New function. --- lisp/dom.el | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'lisp/dom.el') diff --git a/lisp/dom.el b/lisp/dom.el index 03fe75975a4..cf3a02a51db 100644 --- a/lisp/dom.el +++ b/lisp/dom.el @@ -139,6 +139,16 @@ ATTRIBUTE would typically be `class', `id' or the like." (cons dom matches) matches))) +(defun dom-remove-node (dom node) + "Remove NODE from DOM." + ;; If we're removing the top level node, just return nil. + (dolist (child (dom-children dom)) + (cond + ((eq node child) + (delq node dom)) + ((not (stringp child)) + (dom-remove-node child node))))) + (defun dom-parent (dom node) "Return the parent of NODE in DOM." (if (memq node (dom-children dom)) @@ -151,6 +161,7 @@ ATTRIBUTE would typically be `class', `id' or the like." result))) (defun dom-previous-sibling (dom node) + "Return the previous sibling of NODE in DOM." (when-let (parent (dom-parent dom node)) (let ((siblings (dom-children parent)) (previous nil)) -- cgit v1.2.3