jQuery常用的查找Dom元素方法


廢話不多說,先來個總結,然后下面是demo

一. 同級節點之間的檢索(檢索深度N=0)

next()是在兄弟節點中,往后匹配;

prev()是在兄弟節點中,往前匹配。

 

二. 父級/子級節點的檢索(檢索深度N=1)

children()是在子節點中,往后匹配。

parent()是在父節點中,往前匹配。

ps:請注意了---子節點和父節點都是相鄰的,深度為1的節點,也就是標題提到的檢索深度為1

 

三. 后代節點的檢索(檢索深度N>=1)

find()檢索的是子代元素和后代元素,不會檢索兄弟節點。

parents() 檢索的是祖輩元素(包括父元素)的集合。

closest()檢索的是最近的祖輩元素(一個)

ps:當往上級檢索節點的時候,推薦使用closet,效率更高!

 

四. demo

HTML代碼如下:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
        "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <title></title>
</head>
<body>
<div class="out" id="t1">
    <div class="level1" id="t2">
        <span class="title1" id="t3"></span><span class="title2" id="t4"></span>
    </div>
    <ul class="menu" id="t6">
        <li class="item1" id="t7"></li>
        <span class="item2" id="t8"></span>
        <li class="item3" id="t9"></li>
    </ul>

    <div class="level1" id="t10">
        <span class="title1" id="t11"></span><span class="title2" id="t12"></span>
    </div>
    <ul class="menu" id="t14">
        <span class="item1" id="t15"></span>
        <li class="item2" id="t16"></li>
        <span class="item3" id="t17"></span>
    </ul>
</div>
</body>
</html>

 

JS測試代碼如下:

    <script type="text/javascript" src="../js/lib/jquery-1.8.0.min.js"></script>
    <script type="text/javascript">
        $(function () {
            testNext();
            testChildren();
            testFind();
            testPre();
            testParent();
        });

        //測試next。
        function testNext() {
            var $result = $(".level1").next("ul");
            console.info(getTagsInfo($result)); //結果是:["UL#t6", "UL#t14"]
        }

        //測試Children
        function testChildren() {
            var $result = $(".level1").children("span");
            console.info(getTagsInfo($result));//結果是:["SPAN#t3", "SPAN#t4", "SPAN#t11", "SPAN#t12"]
        }

        //測試Find
        function testFind() {
            var $result = $(".out").find("span");
            console.info(getTagsInfo($result));//結果是: ["SPAN#t3", "SPAN#t4", "SPAN#t8", "SPAN#t11", "SPAN#t12", "SPAN#t15", "SPAN#t17"]
        }

        //pre是next的方面,檢索的是同級元素。
        function testPre() {
            var $result = $("#t12").prev("span");
            console.info(getTagsInfo($result));//結果是:["SPAN#t11"]
        }

        //parent是和children相對的,檢索的上一級別的父元素
        function testParent() {
            var $result = $(".title1").parent("div");
            console.info(getTagsInfo($result));//結果是:["DIV#t2", "DIV#t10"]
        }

        //輸出匹配到的元素的id
        function getTagsInfo($doms) {
            return $doms.map(function () {
                return this.nodeName + "#" + this.id;
            }).get();
        }
    </script>

相關源代碼:http://yunpan.cn/c3eL2PdJiqMZ3  訪問密碼 47eb


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM