2

如何找到特定 DOM 元素的代码行号?

所以我在 JS 变量中有一个 DOM 元素,我需要一个函数来返回代码行号和文件名(路径)

4

1 回答 1

0

这是不可能的,因为您可以操纵 dom。

两个原因:

  1. 浏览器在解析 dom 时添加 dom 元素(就像<tbody>大多数人忘记它一样)浏览器还具有未关闭标签等的自动更正功能,因此查看不可能定义 wich dom 节点在哪一行。
  2. 您可以使用 javascript 添加/追加/操作/删除 dom 节点。dom 不是静态的。只要您执行以下操作:var foo = document.createElement("div");并将其附加到正文中,例如:document.body.firstChild.appendChild(foo);行号将在逻辑上发生变化。

您还可以在树中移动 dom 节点,例如更改元素的父级等。您也可以创建 dom 节点而不将它们附加到树中,但您可以在以后的过程中附加它们。

简单地说:除非您安装了检查器,否则您无法确定 dom 节点在哪一行(例如右键单击可视浏览器窗口中的节点并在 chrome 中选择“检查元素”之类的内容)

每个浏览器对 html / dom 的解释都不同,因此不可能有相同的结果树。

您唯一能做的就是添加一个<script>引发异常的标签。在大多数浏览器中,您可以通过警告框显示当前行号。(因为我认为那是“不是一个好主意”,所以我不会详细说明)

于 2012-08-21T05:36:16.230 回答