我想知道querySelector和querySelectorAll反对 getElementsByClassName和之间到底有什么区别getElementById?
querySelector
querySelectorAll
getElementsByClassName
getElementById
从这个链接我可以收集到,querySelector我可以写document.querySelector(".myclass")来获取带有 class 的元素myclass并document.querySelector("#myid")获取带有 ID 的元素myid。但我已经可以做到这一点getElementsByClassName并且getElementById. 应该首选哪一个?
document.querySelector(".myclass")
myclass
document.querySelector("#myid")
myid
我也在XPages中工作,其中 ID 是用冒号动态生成的,看起来像这样view:_id1:inputText1。所以当我写document.querySelector("#view:_id1:inputText1")它不起作用。但写作document.getElementById("view:_id1:inputText1")有效。任何想法为什么?
view:_id1:inputText1
document.querySelector("#view:_id1:inputText1")
document.getElementById("view:_id1:inputText1")
我想知道 querySelector 和 querySelectorAll 与 getElementsByClassName 和 getElementById 之间到底有什么区别?
语法和浏览器支持。
querySelector当您想使用更复杂的选择器时更有用。
例如,所有列表项都来自作为 foo 类成员的元素:.foo li
.foo li
document.querySelector(“#view:_id1:inputText1”) 它不起作用。但是写 document.getElementById(“view:_id1:inputText1”) 有效。任何想法为什么?
该:字符在选择器中具有特殊含义。你必须逃避它。(选择器转义字符在 JS 字符串中也具有特殊含义,因此您也必须对其进行转义 ) 。
:
document.querySelector("#view\\:_id1\\:inputText1")