2013-09-05 2 views
0

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

Как вы знаете, дети могут быть изменены ("TABLE", "Р", "А", "H1" и т.д ..), как вы можете видеть на рисунке ниже я сделал:

HTML TREE

Кроме того, как правило, определяет стиль принадлежит к последнему потомству, как вы можете видеть на следующей картинке:

enter image description here

есть ли общий метод в JAVASCRIPT для зацикливания на всех дочерних элементах, независимо от того, какой тип этот элемент, и получить последний элемент потомства? PS (на картинке выше, соответствующее потомство являются: "P", "ТД"

Спасибо, Дорон

+2

Мое понимание: вы хотите: '[] .filter.call (document.getElementsByTagName ('*'), function (n) {return n.children.length == 0;})' –

+0

считать использование jquery , ваша работа сводится к '$ ('*: empty'). each (function (idx, elem) {/ * делать все с листовыми узлами * /});'. использование рамки имеет множество дополнительных преимуществ. – collapsar

ответ

1
var allElements = document.getElementsByTagName("*"); 

for(var i = 0, l = allElements.length ; i < l; i++) { 
    //get your colors here 
} 
+0

Проблема в том, что иерархия не сохраняется. Как я мог узнать, что TD является дочерним элементом таблицы? –

+0

Я думал, вам просто нужно знать все цвета –

1
.

Это работает! :)

var myEle = $('html'); 
$('*',myEle).filter(function(){ return !this.childElementCount }); 

Мой код работает для всех элементов dom. (Так как я побежал этот код на html)

Таким образом, вместо html, вы можете поместить в #id или .class или любой tag и все его дети будут выбраны. Затем мы фильтруем все это, чтобы получить только те, которые сами не имеют детей.

Смежные вопросы