Javascript 关于DOM元素内部标识符
我想用单音识别一些DOM元素(特别是Javascript 关于DOM元素内部标识符,javascript,html,dom,Javascript,Html,Dom,我想用单音识别一些DOM元素(特别是列表中的元素)。首先,我考虑使用id或data-属性,但我拒绝了这个选项,因为这些属性可以使用开发人员工具轻松更改 是否有任何内部id可用于此目的 谢谢 标识DOM元素最常用的方法是使用类属性或id: document.getElementById(id) document.getElementsByClassName(className) 这里还有一个选项,可以迭代标记找到的元素: document.getElementsByTagName(tagName
列表中的
元素)。首先,我考虑使用id
或data-
属性,但我拒绝了这个选项,因为这些属性可以使用开发人员工具轻松更改
是否有任何内部id可用于此目的
谢谢 标识DOM元素最常用的方法是使用类属性或id:
document.getElementById(id)
document.getElementsByClassName(className)
这里还有一个选项,可以迭代标记找到的元素:
document.getElementsByTagName(tagName)
如果您无法控制HTML标记,我相信您的情况没有什么不同。标识DOM元素最常用的方法是使用class属性或id:
document.getElementById(id)
document.getElementsByClassName(className)
这里还有一个选项,可以迭代标记找到的元素:
document.getElementsByTagName(tagName)
如果您对HTML标记没有任何控制权,我相信您的情况不会有任何不同。元素没有内部ID。无法在无法更改的元素上真正设置id 您真正能做的唯一一件事就是保存对数组/对象/变量中元素的引用,但即使是人也可以在代码中设置断点并对其进行更改
因此,最终,我们真的无法识别一个元素,也无法不让一个人参与开发人员工具并对其进行更改。元素没有内部ID。无法在无法更改的元素上真正设置id 您真正能做的唯一一件事就是保存对数组/对象/变量中元素的引用,但即使是人也可以在代码中设置断点并对其进行更改
因此,最终,我们真的无法识别一个元素,也无法不让一个人参与开发人员工具并对其进行更改。JavaScript不会公开一个类似哈希代码的属性来识别对象
如果要保留对特定
ul
元素的特定子元素的引用,并且您知道这些子元素将始终位于页面中的特定位置,请直接使用document.queryselectoral()
和尽可能多的子组合符和:nth-child()
选择器来选择它们。大多数浏览器开发工具都允许您根据元素在DOM结构中的位置,使用元素检查器为所需的ul
元素复制唯一的选择器。只需将>li
添加到该选择器中,并根据需要在子元素节点之间循环。JavaScript不会公开用于标识对象的类似哈希代码的属性
如果要保留对特定
ul
元素的特定子元素的引用,并且您知道这些子元素将始终位于页面中的特定位置,请直接使用document.queryselectoral()
和尽可能多的子组合符和:nth-child()
选择器来选择它们。大多数浏览器开发工具都允许您根据元素在DOM结构中的位置,使用元素检查器为所需的ul
元素复制唯一的选择器。只需将>li
添加到该选择器中,并根据需要循环子元素节点。答案是否。您可以在变量中存储对元素的引用,但没有内部id。这是什么意思?您的意思是希望在一个页面中获取所有
的集合吗?最好的选择可能是文档。querySelectorAll
。这样你就得到了一个节点列表,例如,querySelectorAll('ul li')
将给出所有的li
,而项目1将始终是项目1(在标记中),无论是类还是id。@zero298,我的意思是如果有一个内部id可以用来唯一地标识我页面的某些元素,并且不能更改,作为普通属性。答案是否。您可以在变量中存储对元素的引用,但没有内部id。您的意思是什么?您的意思是希望在一个页面中获取所有
的集合吗?最好的选择可能是文档。querySelectorAll
。这样你就得到了一个节点列表,例如,querySelectorAll('ul li')
将给出所有的li
,而项目1将始终是项目1(在标记中),无论是类还是id。@zero298,我的意思是如果有一个内部id可以用来唯一地标识我页面的某些元素,并且不能更改,正如normal attributes.OP询问的那样,如何知道元素1是元素1,而不需要有人更改该元素的id。。。。怀疑这实际上回答了OPs的问题。OP的问题是如何知道元素1是元素1,而不需要有人更改该元素的id。。。。怀疑这是否真的回答了这个问题。