html5选择标签,关于HTML5的各种选择器
简介
HTML5向Web API新引⼊了document.querySelector以及document.querySelectorAll两个⽅法⽤来更⽅便地从DOM选取元素,功能类似于jQuery的选择器。这使得在编写原⽣JavaScript代码时⽅便了许多。
⽤法
两个⽅法使⽤差不多的语法,都是接收⼀个字符串参数,这个参数需要是合法的CSS选择语法。
element = document.querySelector('selectors');
elementList = document.querySelectorAll('selectors');
其中参数selectors 可以包含多个CSS选择器,⽤逗号隔开。
element = document.querySelector('selector1,selector2,...');
elementList = document.querySelectorAll('selector1,selector2,...');
使⽤这两个⽅法⽆法查带伪类状态的元素,⽐如querySelector(':hover')不会得到预期结果。
querySelector
该⽅法返回满⾜条件的单个元素。按照深度优先和先序遍历的原则使⽤参数提供的CSS选择器在DOM进⾏查,返回第⼀个满⾜条件的元素
jquery是什么选择器element = document.querySelector('div#container');//返回id为container的⾸个div
element = document.querySelector('.foo,.bar');//返回带有foo或者bar样式类的⾸个元素
querySelectorAll
该⽅法返回所有满⾜条件的元素,结果是个nodeList集合。查规则与前⾯所述⼀样。
elements = document.querySelectorAll('div.foo');//返回所有带foo类样式的div
但需要注意的是返回的nodeList集合中的元素是⾮实时(no-live)的,想要区别什么是实时⾮实时的返回结果,请看下例:
//⾸先选取页⾯中id为container的元素
ElementById('#container');
console.log(container.childNodes.length)//结果为2
//然后通过代码为其添加⼀个⼦元素
container.ateElement('div'));
//这个元素不但添加到页⾯了,这⾥的变量container也⾃动更新了
console.log(container.childNodes.length)//结果为3
通过上⾯的例⼦就很好地理解了什么是会实时更新的元素。ElementById返回的便是实时结果,上⾯对其添加⼀个⼦元素后,再次获取所有⼦元素个数,已经由原来的2个更新为3个(这⾥不考虑有些浏览器⽐如Chrome会把空⽩也解析为⼀个⼦节点)。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。