JavaScript如何访问ID以下划线开头的页面元素?
如何定位以下划线开头ID的元素
尽管早期HTML规范建议元素ID以字母开头,但现代所有主流浏览器都完全支持以下划线(或其他非字母字符)开头的ID,你当前用document.getElementById('___ytsubscribe_0')的写法本身就可以正常找到目标元素,完全不需要额外处理。
如果出于某些原因想换一种写法,也可以用属性选择器来定位:
document.querySelector('[id="___ytsubscribe_0"]')
这种写法通过匹配ID属性的完整值来查找元素,同样能生效。
另外提个更稳定的思路:你自己定义的订阅容器id="yt-sub-dark"是固定的,而YouTube自动生成的ID(比如___ytsubscribe_0)可能会随着页面渲染次数改变编号。你可以通过自己定义的容器间接定位生成的YouTube容器,比如:
// 找到自定义容器,再获取相邻的YouTube生成容器 document.getElementById('yt-sub-dark').nextElementSibling.querySelector('iframe')
这种方式能避免依赖可能变化的自动生成ID,更可靠。
注:跨域iframe内的按钮点击触发属于独立问题,本次仅针对ID定位问题解答。
内容的提问来源于stack exchange,提问作者Lampe2020
相关产品推荐
相关产品推荐

