如何以浏览器无关的方式识别HTML元素(在javascript中)

时间:2010-03-18 21:46:29

标签: javascript dom

我需要以浏览器无关的方式识别页面上的所有html元素。我基本上做的是使用鼠标事件来记录页面上的点击。我需要记录点击了哪个元素。所以我将一个鼠标向下添加到document.body元素中。在鼠标按下时,我得到鼠标下的元素。让我们说它是一个div。然后,我使用document.getElementsByTagName('*') nodelist中的div的索引和nodeName('div')来标识该div。样本元素id是div45,这意味着它是一个div,它是'*'节点列表中的第45个元素。

这一切都很好,直到我使用IE给我不同的索引。所以FireFox中的div45在IE中可能是div47。

有人有什么想法吗?我只需要在页面上的所有元素的id在任何浏览器中都是相同的,也许索引不够好但我真的没有更多的想法。

由于

2 个答案:

答案 0 :(得分:2)

jQuery之类的Javascript库旨在与浏览器无关。请使用它们。

搜索整个DOM树对我来说似乎不太好。

答案 1 :(得分:1)

IE错误地将评论节点作为getElementsByTagName('*')的一部分返回。过滤掉那些(例如,仅通过收集元素节点 - node.nodeType === 1),你应该得到一致的结果。

相关问题