2015-11-02 27 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

如果你想离线试试看书。 :) –

相关问题