12.

Jan 20, 2013 23:30

Немного попрактиковался с обходом дерева документа, тема интересная, заслуживает пристального внимания.
Написал скрипт, рекурсивно обходящий дерево и возвращающий массив c именами всех HTML тэгов.

Насколько я понял, используя свойство nodeType можно узнать тип узла, но вот так вот просто узнать например что это за HTML тэг нельзя. Но можно преобразовать объект Node в строковое представление с помощью метода toString(), и там будет содержаться название тэга в виде строки (как пример) "[object HTMLDivElement]". Что собственно скрипт и делает.

function scanHTMLTree(node)
{
var HTMLTree=[];
if (node.nodeType==Node.ELEMENT_NODE) HTMLTree.push(node.toString());// Если тэг - то строковое представление в массив
for (var childNode=node.firstChild; childNode!=null;childNode=childNode.nextSibling) HTMLTree=HTMLTree.concat(scanHTMLTree(childNode));//обход по всем дочерним узлам с добавлением в массив с именами тэгов
return HTMLTree;
}
Previous post Next post
Up