document 指的是文档
下面列举一下查看元素节点的方法:
doucment.getElementById() 获取指定id的对象
document.getElementsByTagName() 获取一组指定标签名的集合,这个集合看似是数组,实则为类数组
document.getElementsByClassName() 获取一组指定类名的集合
document.getElementsByName() 获取一组指定name的集合
document.querySelector() 获取指定的对象,在括号内写的方式就和咱们css一样,可以很容易选择,如div>p>span.a
document,querySelectorAll() 获取一组指定的对象,就像getElementsByClassName(),getElementsByTagName()获取的一样,它们最终得到都是一组
关于最后两种querySelector和querySelectorAll,大家可能不常见,是因为这两种获取方法在IE6,IE7是没有的;这一点并不是最致命的,最致命的在于它们的操作不是实时的,选中的仅仅是一个副本罢了。下面举例说明一下
在这样一个html结构中

如果你已经对实时操作理解了,那么可以跳过下面的举例
1.先用getElementsByTagName举例说明
// 获取所有的div对象
var div = document.getElementsByTagName("div");
// 创建一个新的div
var newDiv = document.createElement("div");
// 将新创建的div添加至document文档
document.body.appendChild(newDiv);
// 下面我们查看一下当前div这个对象
console.log(div);
// 控制台结果是这样的HTMLCollection(4) [div, div.demo, div, div]
大家请注意下,我是先选择的而后再给document添加的div元素,但是之前选择的div对象还是会获取到后创建的div元素
2.而当用querySelectotAll获取对象举例
// 获取div标签组对象
var div = document.querySelectorAll("div");
// 创建一个新的div
var newDiv = document.createElement("div");
// 将新创建的div添加至document文档
document.body.appendChild(newDiv);
// 此时在控制台输出我们选中div这个对象
console.log(div);
// 控制台结果是这样的NodeList [ div, div.demo, div ]
可以清楚的看到,对于使用querySelectorAll选中的对象,并没有选中后面appendChild操作添加的元素,这就是不能够实时操作,因此,我们很少使用querySelector,querySelectorAll这两种选择器。
浙公网安备 33010602011771号