关于DOM元素内部标识符

时间:2018-09-24 14:49:32

标签: javascript html dom

我想唯一地标识一些DOM元素(特别是<li>列表中的<ul>元素)。首先,我考虑过使用iddata-属性,但是我拒绝了该选项,因为可以使用开发人员工具轻松更改这些属性。

我可以为此目的使用任何内部ID吗?

谢谢!

3 个答案:

答案 0 :(得分:2)

没有元素的内部ID。无法在无法更改的元素上真正设置id。

您唯一能做的就是保留对数组/对象/变量中元素的引用,但即使是一个人,也可以在代码中设置断点并进行更改。

因此,最后,实际上没有办法识别元素,并且没有人去开发工具中进行改动。

答案 1 :(得分:2)

JavaScript不会公开类似于哈希码的属性来标识对象。

如果您想保留对特定ul元素的特定子项的引用,而您知道这些元素将始终位于页面中的特定位置,则可以直接使用document.querySelectorAll()并选择尽可能多的子组合器来选择它们:nth-child()选择器(如有必要)。大多数浏览器开发人员工具都允许您根据元素在DOM结构中的位置,使用元素检查器为所需的ul元素复制唯一选择器。只需将> li添加到该选择器,然后视情况遍历子元素节点即可。

答案 2 :(得分:0)

识别DOM元素的最常见方法是使用类属性或id:

document.getElementById(id)
document.getElementsByClassName(className)

这里还有一个选项,用于遍历标记找到的元素:

document.getElementsByTagName(tagName)

如果您对HTML标记没有任何控制权,我相信您的情况也没有任何区别。