1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 03:57:43 +00:00

LibWeb: Add Element::for_each_attribute(Function<void(Attr const&)>)

This is useful when you are wanting to interate over attributes and need
more information than just the name and value.
This commit is contained in:
Shannon Booth 2023-11-10 10:04:18 +13:00 committed by Andreas Kling
parent a8fd4fab00
commit 45b63b463a
2 changed files with 11 additions and 4 deletions

View file

@ -1885,12 +1885,17 @@ void Element::set_prefix(Optional<FlyString> value)
m_qualified_name.set_prefix(move(value));
}
void Element::for_each_attribute(Function<void(Attr const&)> callback) const
{
for (size_t i = 0; i < m_attributes->length(); ++i)
callback(*m_attributes->item(i));
}
void Element::for_each_attribute(Function<void(FlyString const&, DeprecatedString const&)> callback) const
{
for (size_t i = 0; i < m_attributes->length(); ++i) {
auto const* attribute = m_attributes->item(i);
callback(attribute->name(), attribute->value().to_deprecated_string());
}
for_each_attribute([&callback](Attr const& attr) {
callback(attr.name(), attr.value().to_deprecated_string());
});
}
Layout::NodeWithStyle* Element::layout_node()