Skip to content

Commit bba9c8f

Browse files
committed
Add element.remove() (needed by reddit)
1 parent 1a05fe6 commit bba9c8f

File tree

1 file changed

+15
-0
lines changed

1 file changed

+15
-0
lines changed

src/browser/dom/element.zig

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)