diff --git a/Tests/LibWeb/Text/expected/DOM/getElementById-multiple.txt b/Tests/LibWeb/Text/expected/DOM/getElementById-multiple.txt
new file mode 100644
index 00000000000..d5a3531f4ba
--- /dev/null
+++ b/Tests/LibWeb/Text/expected/DOM/getElementById-multiple.txt
@@ -0,0 +1 @@
+ getElementById('foo') => 1
diff --git a/Tests/LibWeb/Text/input/DOM/getElementById-multiple.html b/Tests/LibWeb/Text/input/DOM/getElementById-multiple.html
new file mode 100644
index 00000000000..adcc0b3b9ec
--- /dev/null
+++ b/Tests/LibWeb/Text/input/DOM/getElementById-multiple.html
@@ -0,0 +1,7 @@
+
+
+
diff --git a/Userland/Libraries/LibWeb/DOM/NonElementParentNode.h b/Userland/Libraries/LibWeb/DOM/NonElementParentNode.h
index 4c834250bf1..e2d09d0510c 100644
--- a/Userland/Libraries/LibWeb/DOM/NonElementParentNode.h
+++ b/Userland/Libraries/LibWeb/DOM/NonElementParentNode.h
@@ -18,10 +18,10 @@ namespace Web::DOM {
template
class NonElementParentNode {
public:
- JS::GCPtr get_element_by_id(FlyString const& id) const
+ JS::GCPtr get_element_by_id(FlyString const& id) const
{
- JS::GCPtr found_element;
- static_cast(this)->template for_each_in_inclusive_subtree_of_type([&](auto& element) {
+ JS::GCPtr found_element;
+ const_cast(static_cast(this))->template for_each_in_inclusive_subtree_of_type([&](auto& element) {
if (element.id() == id) {
found_element = &element;
return TraversalDecision::Break;
@@ -31,19 +31,6 @@ public:
return found_element;
}
- JS::GCPtr get_element_by_id(FlyString const& id)
- {
- JS::GCPtr found_element;
- static_cast(this)->template for_each_in_inclusive_subtree_of_type([&](auto& element) {
- if (element.id() == id) {
- found_element = &element;
- return TraversalDecision::Continue;
- }
- return TraversalDecision::Continue;
- });
- return found_element;
- }
-
protected:
NonElementParentNode() = default;
};