【发布时间】:2017-08-07 13:22:33
【问题描述】:
有人知道如何获取页面中存在的所有 HTML 标记吗?
var items = document.getElementsByTagName("*");
这会得到所有的标签,但我的要求是
- 获取第一个父标签及其下的所有子标签
- 获取下一个父标签及其下的所有子标签,以此类推
我需要以一种树状结构获取标签。更喜欢使用 Javascript 或 JQuery。
例如:
<html>
<head>
<title>Example Page</title>
</head>
<body id="x" class="something">
<h1 style="somestyle">Blabla</h1>
<div id="id">
<table id="formid">
<tr>
<td id="1"></td>
<td id="2"></td>
</tr>
</table>
</div>
</body>
</html>
应该返回:
html
- head->title
- body-->h1,(div-->table-->tr-->td,td)
【问题讨论】:
-
"Javascript 或 JQuery" jQuery 不是一种语言。您的意思是“...在 JavaScript 中直接使用 DOM 或使用 jQuery。”
-
“我需要以一种树状结构获取标签。” 它们不是标签,它们是元素。 (“标签”是一个文本概念。)它们已经在一个树结构中:DOM。
-
我需要将这些元素存储在一个列表/变量中,以便在不同的概念中使用。例如,假设我在第一个循环中获取 head 元素并将该元素分配给 var 并查看 head 下是否有任何子元素并将这些值分配给另一个变量。
-
我的回答向您展示了您将使用什么来做到这一点。 (我以为你想要一个数组而不仅仅是循环中的变量,但调整它很容易。)
-
Idd 使用
document.documentElement.children[0].children[0].children等等(如果你愿意,还可以使用 children.length)。
标签: javascript jquery html