-13 / 1 / 1
Регистрация: 04.12.2015
Сообщений: 59
1

Написать скрипт, рекурсивно обходящий дерево DOM страницы dom.html, начиная от корня DOM

13.04.2018, 19:48. Показов 4016. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Написать скрипт на языке JavaScript, рекурсивно обходящий дерево DOM страницы dom.html, начиная от корня DOM (объект document).
Подключить написанный скрипт к dom.html с помощью тега <script src="<имя скрипта>"></script>.
Пояснения:
Для обхода дерева DOM использовать массив childNodes[], имеющийся у каждого родительского узла.
В процессе обхода выводить в консоль браузера информацию о:
• уровне вложенности (число);
• типе узла (числовое свойство nodeType должно быть преобразовано в строку символов, обозначающую тип узла – “Element”, “Text” и т.д.);
• значении узла (свойство nodeValue);
• для узлов типа “Element” и “Text” должна выводиться дополнительная информация – свойства nodeName, innerHTML.
Для вывода в консоль использовать console.log().
Изображения
 
Вложения
Тип файла: txt dom.txt (1.8 Кб, 6 просмотров)
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.04.2018, 19:48
Ответы с готовыми решениями:

Написать JavaScript, который рекурсивно обходит дерево DOM страницы change.html
Написать скрипт на языке JavaScript, рекурсивно обходящий дерево DOM страницы change.html, начиная...

HTML DOM как с использованием Javascript создать узлы DOM
Доброго времени суток. хочу через Javascript по событию onclick добавить в html документ что то...

Как спарсить DOM-дерево + все js скрипты из страницы firefox
Впринцепе я даже не уверен что это вопрос по теме раздела, но: Задача такая, есть страница в...

Dom структура Html страницы с возможностью выполнять java-скрипты
Всем Привет. У меня возник такой вопрос. Можно ли средствами c# создать dom html страницы, с...

1
Модератор
Эксперт JS
5198 / 2080 / 406
Регистрация: 06.01.2013
Сообщений: 4,794
15.04.2018, 01:14 2
Лучший ответ Сообщение было отмечено Sandar как решение

Решение

Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
const iterateDOMTree = (function ( ) {
  const nodeTypes = new Map([
    [Node.TEXT_NODE, "Text"],
    [Node.ELEMENT_NODE, "Element"],
    [Node.ATTRIBUTE_NODE, "Attribute"],
    [Node.CDATA_SECTION_NODE, "CData Section"],
    [Node.COMMENT_NODE, "Comment"],
    [Node.DOCUMENT_FRAGMENT_NODE, "Document Fragment"],
    [Node.DOCUMENT_NODE, "Document"],
    [Node.DOCUMENT_TYPE_NODE, "Document Type"],
    [Node.ENTITY_NODE, "Entity"],
    [Node.ENTITY_REFERENCE_NODE, "Entity Reference"],
    [Node.NOTATION_NODE, "Notation"],
    [Node.PROCESSING_INSTRUCTION_NODE, "Processing Instruction"], 
  ]);
 
  const iterateDOMTree = function* (root, depth=0) {
    let { nodeType, nodeValue, nodeName, innerHTML } = root;
    nodeType = nodeTypes.get(nodeType);
    
    let additional; 
    if (nodeType === "Element" || nodeType === "Text") 
      additional = { nodeName, innerHTML }; 
    else
      additional = {};
 
    yield { depth, nodeType, nodeValue, ...additional };
    for (let child of root.childNodes) yield* iterateDOMTree(child, depth + 1); 
  }
 
  return iterateDOMTree;
})( );
 
for (let data of iterateDOMTree(document.documentElement)) {
  console.log(data);
}
2
15.04.2018, 01:14
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.04.2018, 01:14
Помогаю со студенческими работами здесь

DOM и XML DOM
Скажите - это одно и тоже, но в разном применении, или это все таки разные объектные модели...

Дерево элементов DOM
Привет всем. Нужно обойти вcе элементы ELEMENT дерева документа DOM. кто-нить, киньте пожалуйста...

DOM скрипт не выполняется
Как только начал изучать JavaScript появилась проблема из самым примитивным скриптом, который по...

DOM HTML.
Мучался этим вопросом долгое время мне нужна ваша помощь,к примеру имею WeBbrowser и edit1 захожу...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru