【问题标题】:Get all existing html tags with javascript使用 javascript 获取所有现有的 html 标签
【发布时间】:2015-11-02 20:01:56
【问题描述】:

我想知道是否可以使用 javascript 获取所有现有的 html 标签(body、head、div、ul 等)。所有现有的我并不是指页面上的所有内容,而是全部有效。 有这样的功能吗?

如果没有 - 它是否在 Firefox 或 Chrome 文件中的某个位置?

【问题讨论】:

  • 您是指页面上的所有标签,还是所有被视为有效 HTML 的标签名称? Mozilla 有一个很好的参考:developer.mozilla.org/en-US/docs/Web/HTML/Element
  • 所有被视为有效 HTML 的标签名称。我也确实是说如果它可能离线,没有连接
  • 好吧 - 我给的链接应该给出一个完整的列表。不过,未来可能会有一些用于自定义标签类型的 HTML 规范。

标签: javascript google-chrome firefox


【解决方案1】:

如果你想要所有标签,这应该这样做:

document.querySelectorAll("*");

如果你想要 html 子标签:

document.querySelector("html").children;

【讨论】:

  • getElementsByTagName 可能比 querySelectorAll 更快
  • 我的意思是如果有可能以 HTML 语言而不是在页面上获取所有现有标签。
【解决方案2】:

您可以编写一个函数来检索<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'));

【讨论】:

  • 我不想获取页面的标签,我想获取所有以 html 语言存在的元素。
  • 您为什么要这样做?给个解释就好了。
  • 啊,我的错。你的问题本来可以更具体一点,强硬。我会把这个答案留在这里,以防万一有人想要实现这个目标。
  • @aCodingN00b 只需要知道,有时我没有连接,我想知道它是否可能。
  • 如果你只是为自己做,你最好下载一个列表或其他东西。
【解决方案3】:

不访问 DOM 的不同方法,因为我仍然不确定目标是什么: 将文档作为字符串,用正则表达式查找“​​”?我要详细说明吗?

【讨论】:

  • 我不是这个意思。我想在 HTML 语言中获取所有现有的和有效的(我可以使用的)标签,而不是在页面上。例如,如果我没有互联网连接并且想同时学习一些 html,但我无法访问在线文档,并且我没有下载任何文档。
  • 您可以在 Chrome 中打开开发者工具并查看 DOM 中的所有内容。您甚至可以在控制台上执行 javascript 并直接操作或编辑它们。在 Mac 上,它是快捷键 alt+cmd+I。或浏览菜单。
  • 如果你想离线试试看书。 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-06
  • 1970-01-01
  • 2013-01-02
  • 2021-07-10
  • 1970-01-01
相关资源
最近更新 更多