当前位置: 首页 > 面试题库 >

Javascript:如何遍历页面上的所有DOM元素?

马朝斑
2023-03-14
问题内容

我试图遍历页面上的所有元素,所以我想检查此页面上存在的每个元素是否有特殊类。

那么,我怎么说我要检查每个元素?


问题答案:

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

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

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

请注意querySelectorAll(),如果可用(可以使用IE9+,IE8中的CSS),可以使用来查找具有特定类的元素。

if (document.querySelectorAll)
    var clsElements = document.querySelectorAll(".mySpeshalClass");
else
    // loop through all elements instead

对于现代浏览器来说,这无疑会加速事情的发展。

浏览器现在在NodeList上支持foreach。这意味着您可以直接循环元素,而不用编写自己的for循环。

document.querySelectorAll('*').forEach(function(node) {
    // Do whatever you want with the node object.
});

性能说明 -尽最大努力确定您要寻找的内容。通用选择器可以根据页面的复杂性返回很多节点。即使您确实需要浏览别人可能看到的'body *'所有head内容,这也意味着您可以用作选择器来剪切所有内容。



 类似资料:
  • 本文向大家介绍如何遍历PHP中的DOM元素?,包括了如何遍历PHP中的DOM元素?的使用技巧和注意事项,需要的朋友参考一下 以下是XML数据(输入)- 遍历DOM对象中的元素。 示例 输出结果 这将产生以下输出- 通过在XML文件中的所有节点上运行foreach循环,可以获取XML文件中的元素。在foreach循环内,将引用主节点的子节点,并且可以访问该子节点的子值。

  • 问题内容: 我需要JavaScript代码来遍历HTML元素中的填充属性。 这个ref表示我可以通过索引访问它,但是没有指定它是否受良好支持并且可以使用(跨浏览器)。 还是其他方式?(不使用任何框架,例如jQuery / Prototype) 问题答案: 这将在IE,Firefox和Chrome中运行(有人可以测试其他人吗?—谢谢@Bryan): 编辑:IE迭代有问题的DOM对象支持的 所有 属性

  • 问题内容: 我正在尝试遍历所有使用forEach 重构的元素。有什么想法为什么在FF,Chrome或IE中不起作用? 问题答案: 您需要使用以下命令将节点列表转换为数组: 或用于循环。 并将ShowResults函数更改为: 为什么我们需要这样做? JavaScript中的某些对象看起来像一个数组,但不是一个。这通常意味着它们具有索引访问和length属性,但是没有任何数组方法。示例包括特殊的变量

  • 问题内容: 我们有一个软件不会删除不再需要的条目。为了了解服务器中有多少数据正在浪费,并准备进行大型清理操作,我试图遍历所有表并拉出标记为删除的记录。这就是我正在使用的: 这是我的错误: 消息116,级别16,状态1,行19当未将EXISTS引入子查询时,只能在选择列表中指定一个表达式。 我意识到我的错误可能与选择该行中的两列有关 但是,我不确定如何才能确保选择下一行。 PS仅用于脚本测试。 如何

  • DOM 让我们可以对元素和它们中的内容做任何事,但是首先我们需要获取到对应的 DOM 对象。 对 DOM 的所有操作都是以 document 对象开始。它是 DOM 的主“入口点”。从它我们可以访问任何节点。 这里是一张描述对象间链接的图片,通过这些链接我们可以在 DOM 节点之间移动。 让我们更详细地讨论它们吧。 在最顶层:documentElement 和 body 最顶层的树节点可以直接作为

  • 问题内容: 我正在尝试对通过document.querySelectorAll查询的选定元素进行循环,但是如何? 例如,我使用: 输出: 我的问题是,最后此方法返回了3个额外的项目。我该怎么做呢? 问题答案: 不建议对数组和类似数组的对象使用循环-您会明白为什么。不仅可以有数字索引项,例如属性或某些方法,还可以遍历所有这些项。使用任一 要么 如果数组中的某些元素可能是虚假的(不是您的情况),则无法