美文网首页实用前端
js新增类jq的选择器---好用

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

作者: 麦壳儿UIandFE2 | 来源:发表于2017-01-26 13:02 被阅读49次

    序:
    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标签
    
    

    注意:

    • querySelectorAll获取的是一组元素。同时会获取到与这个元素(对象)下的所有属性和方法。

    小结:

    • 这两个都是方法,不是属性,书写时不要忘记加括号,且要传参数(css选择器写法一致)。
    • 让浏览器原生支持css查询;底层都是会有一个基础的css解析器做支撑的。这两种方法接受的是css选择符。

    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前进的动力--------------------------------------

    相关文章

      网友评论

        本文标题: js新增类jq的选择器---好用

        本文链接:https://www.haomeiwen.com/subject/ucbxittx.html