zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    分布式一致性模型
    ubuntu18.04 基于Hadoop3.1.2集群的Hbase2.0.6集群搭建
    ubuntu18.04 flink-1.9.0 Standalone集群搭建
    Idea 打印GC
    goroutine简介
    MESI缓存一致性协议
    Spark RDD 算子总结
    SparkStreaming 笔记
    Spark 内存管理
    Highcharts(数据分析图)
  • 原文地址:https://www.cnblogs.com/LiuChunfu/p/5042851.html
Copyright © 2011-2022 走看看