2015-11-02 85 views
0

我想知道是否有可能使用javascript獲取所有現有的html標記(body,head,div,ul等)。所有現有的我並不是指所有的網頁,但都是有效的。 有沒有這樣的功能?使用javascript獲取所有現有的html標記

此外,如果沒有 - 在Firefox或Chrome文件中的某處?

+0

您是指網頁上的所有標籤,或者被視爲有效HTML的所有標籤名稱? Mozilla有一個很好的參考:https://developer.mozilla.org/en-US/docs/Web/HTML/Element – Katana314

+0

被認爲是有效的HTML的所有標籤名稱。我的意思是,如果它可能脫機,沒有連接 –

+0

好吧 - 我給出的鏈接應該給出一個完整的列表。不過,將來可能會有一些HTML自定義標籤類型的HTML規範。 – Katana314

回答

0

您可以編寫一個函數來檢索<html>元素的所有子元素。這將允許您獲取頁面上的所有html元素。

function getAllChildElements (start) { 
    var children = start.childNodes; 
    var elements = children; 

    for (var i = 0; i < children.length; i++) { 
     elements.concat(getAllChildElements(children[i]); 
    } 

    return elements; 
} 

var all_elements = getAllChildElements(document.querySelector('html')); 
+0

我不想得到頁面的標籤,我想獲取所有存在於html語言中的元素。 –

+0

你爲什麼要這麼做?只要給一個解釋。 –

+0

啊,我的壞。你可能在你的問題上更具體一些,很難。我會在這裏留下這個答案,以防萬一任何人想要達到這個目的。 –

1

如果你希望所有的標籤這應該這樣做:

document.querySelectorAll("*"); 

如果你想HTML子標籤:

document.querySelector("html").children; 
+0

getElementsByTagName可能會更快vs querySelectorAll – smcd

+0

我的意思是,如果它有可能獲取HTML語言中的所有現有標記,而不是頁面上。 –

0

不同的方法,不能訪問DOM,因爲我還沒有確定目標是什麼: 將文檔作爲字符串並用正則表達式查找「​​<」和「>」?我應該詳細說明一下嗎?

+0

這不是我的意思。我想以HTML語言獲取所有現有的和有效的(我可以使用它)標記,而不是在頁面上。目標是,例如,如果我沒有互聯網連接,並想在此期間學習一些HTML,但我無法訪問在線文檔,我沒有下載任何。 –

+0

您可以在Chrome中打開Developer Tools並查看DOM中的所有內容。您甚至可以在控制檯上執行JavaScript並操作它們或直接編輯它們。在Mac上,它是快捷鍵alt + cmd + I。或者瀏覽菜單。 –

+0

如果你想離線試試看書。 :) –

相關問題