实用前端

js新增类jq的选择器---好用

2017-01-26  本文已影响49人  麦壳儿UIandFE2

序:
w3c对DOM主要的两个扩展是selectorAPI和HTML5;selectorAPI致力于让浏览器原生支持css查询。就像jq那样。selectorAPI核心是2个方法: querySelector()和querySelectorAll();兼容性性上从IE8+;现阶段开发基本都是兼容到ie8就ok了,所以这个方法基本可以大胆使用。jq中两大特色是选择器简洁好用,兼容性不用考虑。这个selectorAPI的出现顶的过jq小半边天的地位,毕竟原生支持的要比库的性能更优些吧,毕竟不用引包了。

1. querySelector()

示例:

html:
 <div class="showBox">
    ![](images/pic01.jpg)
</div>
js:
    var oShowBox = document.querySelector('.showBox');
--------------------------------------------------
获取了showBox

注意:
页面要是有一堆的类名叫showBox也只会获取第一个。如果没有,就返回一个null.

2. querySelectorAll()

示例:

html:
  <ul id="smallBoxBot">
        <li>![](images/pic0001.jpg)</li>
        <li>![](images/pic0002.jpg)</li>
        <li>![](images/pic0003.jpg)</li>
    </ul>
js:
    var oGps = document.querySelectorAll('#smallBoxBot img');
--------------------------------------------------
获取了smallBoxBot里的所有img标签

注意:

小结:

3. 扩展---children选择器

选择的是谁的子级。是属性不加括号的。

示例:

html:
  <ul class="smallBoxBot">
        <li>![](images/pic0001.jpg)</li>
        <li>![](images/pic0002.jpg)</li>
        <li>![](images/pic0003.jpg)</li>
    </ul>
js:
 //导航小图所有
var oGps = document.querySelector('.smallBoxBot ').children;
--------------------------------------------------
获取了smallBoxBot里的所有img标签


//导航小图第一张
var oGps = document.querySelector('.smallBoxBot ').children[0];
--------------------------------------------------
获取了smallBoxBot里的第一个img标签

4. 对比传统的DOM选择器

---又臭又长--一不留神就写错了。幸好那时有一个children选择器相助,否则真是欲哭无泪啊。你必须一级一级的获取,而selectorAPI按照需要获取。

示例:

html:
-------------------------------------------------
 <div class="smallBox">
    <div class="smallBoxTop">
        ![](images/pic001.jpg)
        <span></span>
    </div>
    <ul class="smallBoxBot">
        <li>![](images/pic0001.jpg)</li>
        <li>![](images/pic0002.jpg)</li>
        <li>![](images/pic0003.jpg)</li>
    </ul>
</div>
<div class="showBox">
    ![](images/pic01.jpg)
</div>
js:传统选择器写法
 -------------------------------------------------

var oSpan = document.getElementsByTagName('span')[0];
var oSmallBoxTop = document.getElementsByClassName('smallBoxTop')[0];
var oSmallImg = oSmallBoxTop.children[0];
var oShowBox = document.getElementsByClassName('showBox')[0];
var oBigImg = oShowBox.children[0];
var oGps = document.getElementsByClassName('smallBoxBot')[0].children;
 
 js:selectorAPI选择器写法
 -------------------------------------------------
var oSpan = document.querySelector('.smallBoxTop span');
var oSmallBoxTop = document.querySelector('.smallBoxTop');
var oSmallImg = oSmallBoxTop.children[0];
var oShowBox = document.querySelector('.showBox');
var oBigImg = oShowBox.children[0];
var oGps = document.querySelectorAll('.smallBoxBot img');       

----------------------------------------------------喜欢就动动小手哈。------------------------------------------------------

--------------------------------------你的支持是洒家-麦壳-macrolam前进的动力--------------------------------------

上一篇下一篇

猜你喜欢

热点阅读