Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 31.08.2022, 13:43
Аспирант
Отправить личное сообщение для Andy_kun Посмотреть профиль Найти все сообщения от Andy_kun
 
Регистрация: 05.08.2022
Сообщений: 64

Обход всех Node документа
Подскажите пожалуйста, правильно ли я реализовал обход всех Node документа, ну кроме Node атрибутов:

function my_func(element_, return_NODE_callback_func)
{

    let element_childNodes = element_.childNodes;
    
    for(let i=0; i<element_childNodes.length; i++)
    {

         return_NODE_callback_func(element_childNodes[i]);
        
        if(element_childNodes[i].hasChildNodes() == true)   
        {
             //Значиту у данной ноды есть минимум одна дочерняя Нода, применим к ней ту же самую функцию обьхода:
             my_func(element_childNodes[i], return_NODE_callback_func);
        }
    }
        
}



function return_NODE_callback_func(return_NODE)
{
   console.log(return_NODE);     
}



//------------------------------------int main:---------------------------------

let element_find = document;       //Элемент у которого нужно обойти все Ноды.

my_func(element_find, return_NODE_callback_func);



Так что все вроде бы все правильно и работает, но на всякий случай хотел уточнить.
Ответить с цитированием
  #2 (permalink)  
Старый 31.08.2022, 14:17
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,692

Можно проще
function my_func(element, callback) {
    const iterator = document.createNodeIterator(element, NodeFilter.SHOW_ALL);
    let current;
    while (current = iterator.nextNode()) {
        callback (current);
    } 
}


https://developer.mozilla.org/en-US/...teNodeIterator

Последний раз редактировалось voraa, 31.08.2022 в 14:20.
Ответить с цитированием
  #3 (permalink)  
Старый 31.08.2022, 14:52
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

Andy_kun,
https://developer.mozilla.org/ru/doc...eateTreeWalker
Ответить с цитированием
  #4 (permalink)  
Старый 31.08.2022, 15:36
Аспирант
Отправить личное сообщение для Andy_kun Посмотреть профиль Найти все сообщения от Andy_kun
 
Регистрация: 05.08.2022
Сообщений: 64

Спасибо, не знал про такие функции.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обмен узлов между двумя деревьями jabbascript Javascript под браузер 8 05.02.2021 18:13
Линейный список в js artem55555p Элементы интерфейса 4 29.05.2018 11:15
Бинарное древо (отрисовка), объекты d1ver Общие вопросы Javascript 8 14.10.2017 02:07
Обход всех элементов на странице. lexnext1 Элементы интерфейса 0 08.11.2011 12:58
Определение высоты документа работает не во всех браузерах Neokortex jQuery 5 11.01.2011 17:26