2015-03-02 2 views
2

Кто-нибудь знает, как я могу получить все теги HTML, которые существуют на странице? Мне нужно получить только теги без их идентификаторов или других атрибутов и создать своего рода древовидную структуру. Предпочитаете делать это с помощью Javascript или JQuery.Получить все теги html с помощью Javascript

Например, этот HTML код:

<html> 
    <head> 
    <title> 
     Example Page 
    </title> 
    </head> 
    < body> 
    <h1 style="somestyle"> 
     Blabla 
    </h1> 
    <div id="id"> 
    <table id="formid"> 
     <tr> 
     <td> 
     </td> 
     </tr> 
     </table> 
    </div> 
    </body> 
</html> 

должен вернуть возврат:

HTML
голова
название
тело
h1
ДИВ
стол
тр
тд

+1

Что вы попробовали? –

+0

'document.querySelectorAll ('*')'. или пересечь DOM (document.body) рекурсивно с '.children'. – A1rPun

+2

Что такое прецедент для этого? Это не тривиальное воспроизведение DOM – charlietfl

ответ

6

Вы можете передать * в getElementsByTagName() так, что он будет возвращать все элементы на странице:

var all = document.getElementsByTagName("*"); 

for (var i=0, max=all.length; i < max; i++) { 
    // Do something with the element here 
} 
0

Его очень простой кусок Javascript

document.querySelectorAll('*') 

Попробуйте в журнале консоли, и это будет вы все теги в документе.

Другим примером является getElementsByTagName

Эти же распечатать в массив, так что вы можете затем цикл по элементам и делать разные вещи на разных элементах.

Пример:

var items = document.getElementsByTagName("*"); 
for (var i = 0; i < items.length; i++) { 
    //do stuff 
} 
+0

И, чтобы добавить немного больше информации, каждый элемент HTML будет иметь свойство «tagName», которое дает основное имя, которое вы ищете. По умолчанию это заглавный – Katana314

0

Я сделал это с getElementsByTagName и .tagName для каждого значения в обратном массиве.

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