1.区别
getElementsByTagName获取的是动态集合,querySelector获取的是静态集合。
简单的说就是,动态就是选出的元素会随文档改变,静态的不会,取出来之后就和文档的改变无关了。
2.应用场景
如果只要一次查找就可得到元素时,首选querySelector ;
如果需要经过多级查找,才能得到元素时,用getElementsByTagName;
<ul>
<li>aaa</li>
<li>ddd</li>
<li>ccc</li>
</ul>
<script type="text/javascript">
var ul = document.getElementsByTagName('ul')[0];
lis = ul.getElementsByTagName("li");
ul.appendChild(document.createElement("li"));
console.log( lis.length); //4
</script>
<script type="text/javascript">
var ul = document.getElementsByTagName('ul')[0];
var lis = document.querySelectorAll('li');
ul.appendChild(document.createElement("li"));
console.log( lis.length); //3
</script>