690
 

Получение элемента по типу

Элементы DOM бывают разного типа – элемент, текст, CDATA, комментарий. Каждый из этих элементов содержит определенное значение в параметре nodeType:

Node.ELEMENT_NODE = 1
Node.TEXT_NODE = 3
Node.CDATA_SECTION_NODE = 4
Node.COMMENT_NODE = 8

Для того, чтобы выделить группу элементов нужного нам типа, например комментариев, можно использовать следующую функцию:

HTMLElement.prototype.getNodesByType =
  function getTextNodes(nodeType) {
    // Просматриваем все дочерние элементы
    // объекта this
    var a = [];
    var l = this.childNodes.length;
    for(var i=0; i < l; i++) {
      // если элемент нужного нам типа, добавляем его в
      // массив результатов
      if (this.childNodes[i].nodeType == nodeType)
        a.push(this.childNodes[i]);
      // Делаем рекурсию только при Node.ELEMENT_NODE (1)
      if (this.childNodes[i].nodeType == 1)
        a = a.concat(this.childNodes[i].getNodesByType(nodeType));
    }
    return a;
  };

В этой функции производится рекурсивный проход по всем дочерним элементам и выбираются те из них, значение nodeType которого равняется заданному значению.

Добавить в закладки:
Maklay.com - Большой каталог товаров для спорта и активного отдыха

Оставить комментарий

JSToolbox создан на основе WordPress