小编典典

querySelector和querySelectorAll与JavaScript中的getElementsByClassName和getElementById

javascript

我想知道querySelectorand querySelectorAll
getElementsByClassName和之间的区别到底是什么getElementById

通过此链接,我可以收集到有关内容,querySelector可以编写document.querySelector(".myclass")以获取具有class的元素myclassdocument.querySelector("#myid")获取具有ID的元素myid。但我已经可以做到这一点getElementsByClassNamegetElementById。应该首选哪一个?

我也在XPages中工作,其中的ID是用冒号动态生成的,如下所示view:_id1:inputText1。所以当我写的时候document.querySelector("#view:_id1:inputText1")它是行不通的。但是写document.getElementById("view:_id1:inputText1")作品。有什么想法吗?


阅读 445

收藏
2020-05-01

共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")
2020-05-01