@@ -508,6 +508,12 @@ pub const Element = struct {
508508 _ = opts ;
509509 return Animation .constructor (effect , null );
510510 }
511+
512+ pub fn _remove (self : * parser.Element ) ! void {
513+ const as_node : * parser.Node = @ptrCast (self );
514+ const parent = try parser .nodeParentNode (as_node ) orelse return ;
515+ _ = try Node ._removeChild (parent , as_node );
516+ }
511517};
512518
513519// Tests
@@ -767,4 +773,13 @@ test "Browser.DOM.Element" {
767773 .{ "fc; (fc = document.createElement('div')).innerHTML = '<script><\\ /script><p>hello</p>'" , null },
768774 .{ "fc.outerHTML" , "<div><script></script><p>hello</p></div>" },
769775 }, .{});
776+
777+ try runner .testCases (&.{
778+ .{ "const rm = document.createElement('div')" , null },
779+ .{ "rm.id = 'to-remove'" , null },
780+ .{ "document.getElementsByTagName('body')[0].appendChild(rm)" , null },
781+ .{ "document.getElementById('to-remove') != null" , "true" },
782+ .{ "rm.remove()" , "undefined" },
783+ .{ "document.getElementById('to-remove') != null" , "false" },
784+ }, .{});
770785}
0 commit comments