При построении TreeWalker, почему currentNode указывает на корень, даже если он не может пройти критерии фильтра?Почему TreeWalker currentNode по умолчанию для корневого узла?
Я бы ожидал, что оно будет равно null, пока я не вызову nextNode, чтобы я мог проверить, передается ли корню критерии фильтра.
Я предполагаю, что это так, как он был разработан, я просто не совсем понимаю причину. Это не соответствует моему варианту использования всех элементов с определенным набором атрибутов, включая корень. Если я поднимусь к родительскому корню, я включу братьев и сестер, которых я не хочу.
Я думаю, что дизайн TreeWalker испорчен, но, может быть, я что-то упустил. Во всяком случае, я решил использовать свою собственную индивидуальную реализацию. Может быть медленнее, чем родной, но он работает. Я приму ответ, как единственный вариант со стандартной реализацией. – dave
@dave: На самом деле у меня такое чувство, что алгоритм ['nextNode'] (https://dom.spec.whatwg.org/#dom-treewalker-nextnode), как и в настоящее время в спецификации, также глючит, поскольку он никогда не поднимается на дерево. – Bergi