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 00000000000..d46a0f49d09
--- /dev/null
+++ b/Tests/LibWeb/Text/input/DOM/getElementsByClassName-multiple.html
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
diff --git a/Userland/Libraries/LibWeb/DOM/ParentNode.cpp b/Userland/Libraries/LibWeb/DOM/ParentNode.cpp
index e92fd231282..3b188d90feb 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();
});
}