diff --git a/Tests/LibWeb/Text/input/DOM/getElementsByClassName-multiple.html b/Tests/LibWeb/Text/input/DOM/getElementsByClassName-multiple.html
new file mode 100644
index 0000000000000..2b3ef9d4c71e2
--- /dev/null
+++ b/Tests/LibWeb/Text/input/DOM/getElementsByClassName-multiple.html
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Userland/Libraries/LibWeb/DOM/ParentNode.cpp b/Userland/Libraries/LibWeb/DOM/ParentNode.cpp
index e92fd23128237..3b188d90febb3 100644
--- a/Userland/Libraries/LibWeb/DOM/ParentNode.cpp
+++ b/Userland/Libraries/LibWeb/DOM/ParentNode.cpp
@@ -227,6 +227,7 @@ WebIDL::ExceptionOr
ParentNode::replace_children(Vector ParentNode::get_elements_by_class_name(StringView class_names)
{
Vector list_of_class_names;
@@ -235,10 +236,10 @@ JS::NonnullGCPtr ParentNode::get_elements_by_class_name(StringVi
}
return HTMLCollection::create(*this, HTMLCollection::Scope::Descendants, [list_of_class_names = move(list_of_class_names), quirks_mode = document().in_quirks_mode()](Element const& element) {
for (auto& name : list_of_class_names) {
- if (element.has_class(name, quirks_mode ? CaseSensitivity::CaseInsensitive : CaseSensitivity::CaseSensitive))
- return true;
+ if (!element.has_class(name, quirks_mode ? CaseSensitivity::CaseInsensitive : CaseSensitivity::CaseSensitive))
+ return false;
}
- return false;
+ return !list_of_class_names.is_empty();
});
}