我想唯一地标识一些DOM元素(特别是<li>
列表中的<ul>
元素)。首先,我考虑过使用id
或data-
属性,但是我拒绝了该选项,因为可以使用开发人员工具轻松更改这些属性。
我可以为此目的使用任何内部ID吗?
谢谢!
答案 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标记没有任何控制权,我相信您的情况也没有任何区别。