【问题标题】:Get all html tags with Javascript使用 Javascript 获取所有 html 标签
【发布时间】:2015-03-02 15:44:57
【问题描述】:

有人知道如何获取页面中存在的所有 HTML 标记吗? 我只需要获取没有 ID 或其他属性的标签,并创建一种它们的树结构。 更喜欢使用 Javascript 或 JQuery。

例如,这段 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
div

tr
td

【问题讨论】:

  • document.querySelectorAll('*')。或使用 .children 递归遍历 DOM (document.body)。
  • 这个用例是什么?重现 DOM 并非易事
  • 澄清一下,你想要你在“将返回:”下描述的输出,还是缩进的树状版本?
  • 没关系.. @NicolasMcCurdy,我尝试使用 querySelectorAll 执行此操作,但它返回了很多垃圾,我只需要标签名称。

标签: javascript jquery html


【解决方案1】:

您可以将* 传递给getElementsByTagName(),以便它返回页面中的所有元素:

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

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

【讨论】:

    【解决方案2】:

    这是一段非常简单的 Javascript

    document.querySelectorAll('*')
    

    在控制台日志中尝试一下,它会显示文档中的所有标签。

    另一个例子是getElementsByTagName

    这些确实会打印到一个数组中,因此您可以循环遍历元素并对不同的元素执行不同的操作。

    例子:

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

    【讨论】:

    • 而且,为了添加更多信息,每个 HTML 元素都有一个“tagName”属性,它给出了您正在寻找的基本名称。默认为大写
    【解决方案3】:

    我对返回数组中的每个值都使用了getElementsByTagName.tagName

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-02
      • 2011-05-10
      相关资源
      最近更新 更多