前端测试题

获取元素的方法有哪些? ABC
A.getElementById
B.getElementsByTagName
C.getElementsByClassName
D.getElements

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<ul id="list">
<li></li>
<li></li>
<li></li>
</ul>
<script>
var lis1 = document.getElementsByTagName('li');
var lis2 = document.querySelectorAll('li'); // querySelectorAll接收css选择器
var lis3 = list.children;
var lis4 = list.childNodes;

console.log(lis1); // HTMLCollection(3)[li,li,li] 类数组,不是数组,不能直接调用数组的方法
console.log(lis2); // Nodelist(3)[li,li,li] 类数组,不是数组,不能直接调用数组的方法

list.innerHTML += '<li>li</li>';
/* 这里直接写list会默认用id='list'去获取元素,但不建议这样写
list.innerHTML = list.innerHTML + '<li>li</li>'; 重写list的html内容,会覆盖掉之前的li
*/
console.log(lis1); // HTMLCollection(4)[li,li,li,li] getElementsByTagName获取到的元素是动态变化的
console.log(lis2); // Nodelist(3)[li,li,li] querySelectorAll不会动态执行
console.log(lis3); // HTMLCollection(4)[li,li,li,li] children获取到的元素是动态变化的
console.log(lis4); // Nodelist(9)[text,li,text,li,text,li,text,li,text] querySelectorAll不会动态执行
</script>
1
2
({}+{}).length  // 30
// 计算过程,运算符优先级,隐式类型转换