getElementBy 系列和 querySelector 系列的区别

💡 原文中文,约1300字,阅读约需4分钟。
📝

内容提要

querySelector和querySelectorAll与getElementBy系列的主要区别在于获取元素的方式。getElementBy获取动态集合,而querySelector获取静态集合。使用for循环时,直接使用动态集合可能导致死循环,通过将动态集合静态化可以避免此问题,确保获取的元素数量不受后续动态添加的影响。

🎯

关键要点

  • querySelector和querySelectorAll获取元素的方式与getElementBy系列不同。
  • getElementBy获取的是动态集合,而querySelector获取的是静态集合。
  • 使用动态集合时,可能导致死循环,通过将其静态化可以避免此问题。
  • 在for循环中,使用i < li.length会导致死循环,需将其改为i < 3以静态化li标签数组。
  • querySelectorAll获取的静态集合不会受到后续动态添加元素的影响。

延伸问答

getElementBy系列和querySelector系列的主要区别是什么?

getElementBy系列获取的是动态集合,而querySelector系列获取的是静态集合。

使用getElementBy系列时可能会遇到什么问题?

使用getElementBy系列时,可能会导致死循环,因为每次循环都会重新获取动态集合。

如何避免使用动态集合时出现死循环?

可以通过将动态集合静态化,例如将循环条件改为i < 3,来避免死循环。

querySelectorAll获取的集合有什么特点?

querySelectorAll获取的静态集合不会受到后续动态添加元素的影响。

在for循环中如何正确使用li标签的长度?

在for循环中,应避免使用li.length作为条件,而是使用静态化的值,如i < 3。

为什么querySelector和querySelectorAll需要带上符号?

querySelector和querySelectorAll需要带上符号是为了选择特定的元素,如类名或ID。

➡️

继续阅读