【发布时间】:2012-08-21 05:15:12
【问题描述】:
如何找到特定 DOM 元素的代码行号?
所以我在 JS 变量中有一个 DOM 元素,我需要一个函数来返回代码行号和文件名(路径)
【问题讨论】:
-
你能给我们看一些代码吗?您是否考虑过在错误发生时使用
console.log(jsVariable)或console.trace()?
标签: javascript html dom
如何找到特定 DOM 元素的代码行号?
所以我在 JS 变量中有一个 DOM 元素,我需要一个函数来返回代码行号和文件名(路径)
【问题讨论】:
console.log(jsVariable) 或console.trace()?
标签: javascript html dom
这是不可能的,因为你可以操纵 dom。
两个原因:
<tbody> 导致大多数人忘记它)
浏览器还可以自动更正未关闭的标签等,因此无法定义 dom 节点在哪一行。var foo = document.createElement("div"); 并将其附加到正文中,例如:document.body.firstChild.appendChild(foo);,行号就会在逻辑上发生变化。您还可以在树中移动 dom 节点,例如更改元素的父级等。 您也可以创建 dom 节点而不将它们附加到树中,但您可以在以后的过程中附加它们。
简单地说:除非您安装了检查器(例如右键单击可视浏览器窗口中的节点并在 chrome 中选择“检查元素”之类的内容),否则您无法确定 dom 节点在哪一行。
每个浏览器对 html / dom 的解释都不同,因此不可能有相同的结果树。
您唯一能做的就是添加一个引发异常的<script> 标记。在大多数浏览器中,您可以通过警告框显示当前行号。 (因为我认为那“不是一个好主意”,所以我不会详细说明)
【讨论】: