nsIContent* nsTreeUtils::GetDescendantChild(nsIContent* aContainer, nsIAtom* aTag) { dom::FlattenedChildIterator iter(aContainer); for (nsIContent* child = iter.GetNextChild(); child; child = iter.GetNextChild()) { if (child->Tag() == aTag) { return child; } child = GetDescendantChild(child, aTag); if (child) { return child; } } return nullptr; }
nsIContent* nsTreeUtils::GetDescendantChild(nsIContent* aContainer, nsIAtom* aTag) { ChildIterator iter, last; for (ChildIterator::Init(aContainer, &iter, &last); iter != last; ++iter) { nsIContent* child = *iter; if (child->Tag() == aTag) { return child; } child = GetDescendantChild(child, aTag); if (child) { return child; } } return nullptr; }