3 回答
TA贡献2039条经验 获得超7个赞
querySelector和getlementbyID(Claassname,Tagname等)之间的主要区别在于,如果有多个元素满足条件,querySelector将只返回一个输出,而getElementBy *将返回所有元素。
让我们考虑一个例子,使其更清晰。
<nav id="primary" class="menu">
<a class="link" href="#">For Business</a>
<a class="link" href="#">Become an Instructor</a>
<a class="link" href="#">Mobile Applications</a>
<a class="link" href="#">Support</a>
<a class="link" href="#">Help</a>
</nav>
下面的代码将解释差异
**QUERY SELECTOR**
document.querySelector('.link'); // Output : For Business (element)
document.querySelectorAll('.link'); //Out All the element with class link
**GET ELEMENT**
document.getElementsByClassName('link') // Output : will return all the element with a class "link" but whereas in query selector it will return only one element which encounters first.
如果我们想要为查询选择器选择单个元素,或者如果我们想要多个元素用于getElement,则为Inshort
TA贡献1862条经验 获得超7个赞
我想知道querySelector和querySelectorAll对getElementsByClassName和getElementById的区别究竟是什么?
语法和浏览器支持。
querySelector
当您想要使用更复杂的选择器时更有用。
例如,所有列表项都来自作为foo类成员的元素: .foo li
document.querySelector(“#view:_id1:inputText1”)它不起作用。但是编写document.getElementById(“view:_id1:inputText1”)可以正常工作。有什么想法吗?
该:
字符有选择内部特殊的意义。你必须逃脱它。(选择器转义字符在JS字符串中也有特殊含义,所以你也必须转义它)。
document.querySelector("#view\\:_id1\\:inputText1")
添加回答
举报