diff --git a/Tests/LibWeb/Text/expected/DOM/getElementsByClassName-multiple.txt b/Tests/LibWeb/Text/expected/DOM/getElementsByClassName-multiple.txt new file mode 100644 index 0000000000000..b8ab2615bc51e --- /dev/null +++ b/Tests/LibWeb/Text/expected/DOM/getElementsByClassName-multiple.txt @@ -0,0 +1,4 @@ + document.getElementsByClassName("te st").length: 3 +
+
+
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(); }); }