小编典典

JavaScript 中的 querySelector 和 querySelectorAll 与 getElementsByClassName 和getElementById

all

我想知道querySelectorquerySelectorAll反对
getElementsByClassName和之间到底有什么区别getElementById

这个链接我可以收集到,querySelector我可以写document.querySelector(".myclass")来获取带有
class 的元素myclassdocument.querySelector("#myid")获取带有 ID
的元素myid。但我已经可以做到这一点getElementsByClassName并且getElementById. 应该首选哪一个?

我也在XPages中工作,其中 ID
是用冒号动态生成的,看起来像这样view:_id1:inputText1。所以当我写document.querySelector("#view:_id1:inputText1")它不起作用。但写作document.getElementById("view:_id1:inputText1")有效。任何想法为什么?


阅读 90

收藏
2022-06-07

共1个答案

小编典典

我想知道 querySelector 和 querySelectorAll 与 getElementsByClassName 和
getElementById 之间到底有什么区别?

语法和浏览器支持。

querySelector当您想使用更复杂的选择器时更有用。

例如,所有列表项都来自作为 foo 类成员的元素:.foo li

document.querySelector(“#view:_id1:inputText1”) 它不起作用。但是写
document.getElementById(“view:_id1:inputText1”) 有效。任何想法为什么?

:字符在选择器中具有特殊含义。你必须逃避它。(选择器转义字符在 JS 字符串中也具有特殊含义,因此您也必须对其进行转义

document.querySelector("#view\\:_id1\\:inputText1")
2022-06-07