第九节(jQuery的遍历、祖先、后代、同胞、过滤)

  通过 jQuery 遍历 DOM 树

parent()  方法返回被选元素的直接父元素,该方法只会向上一级对 DOM 树进行遍历
parents()  方法返回被选元素的所有祖先元素,它一路向上直到文档的根元素 (<html>)
parentsUntil()  方法返回介于两个给定元素之间的所有祖先元素

<style type="text/css">
            *{margin:0;padding:0;}
            .parent{width:600px;height:300px;}
            .parent ul li{list-style:none;}
            .parent,ul,li,p{border:1px solid green;padding:5px;margin:10px;}

</style>

<body>

    <div class="parent">(太爷)
        <ul class="p_ul">(爷爷)
            <li>(父亲)
                <p>子</p>
            </li>
            <li></li>
        </ul>
    </div>

    <input type="button" value="找爸爸" id="parent"/>
    <input type="button" value="找祖祖" id="parents"/>

    <input type="button" value="parentsUntil" id="parentsUntil"/>

<script type="text/javascript" src="js/jquery-1.11.1.min.js"></script>
<script type="text/javascript">

    $(function(){
        //    alert("亲爱的同学们,我爱你们 !");

        // parent()  方法返回被选元素的直接父元素,该方法只会向上一级对 DOM 树进行遍历

        // $("p").css({ "color": "#ff0011", "background": "blue" });

        $("#parent").click(function(){
            $("p").parent().css({"color":"red","border":"3px solid red"});
        });
    /*
            function clickMe(){
                $("p").parent().css({"color":"red","border":"3px solid red"});
            }
    */

        // parents()  方法返回被选元素的所有祖先元素,它一路向上直到文档的根元素 (<html>)
        $("#parents").click(function(){
            $("p").parents(".p_ul").html("大家好,太帅了!");
        });

        //  parentsUntil()  方法返回介于两个给定元素之间的所有祖先元素
        $("#parentsUntil").click(function(){
            $("p").parentsUntil(".p_ul").css("background","#690");

        });

    });

</script>

</body>
  通过 jQuery,向下遍历 DOM 树,以查找元素的后代
   children() 方法返回被选元素的所有直接子元素 ,该方法只会向下一级对 DOM 树进行遍历
   find()  方法返回被选元素的后代元素,一路向下直到最后一个后代 , 

<style type="text/css">
            *{margin:0;padding:0;}
            .parent{width:600px;height:300px;}
            .parent ul li{list-style:none;}
            .parent,ul,li,p{border:1px solid green;padding:5px;margin:10px;}

</style>

<body>

    <div class="parent">(太爷)
        <div class="par"> par
            <ul class="p_ul">(爷爷)
                <li>(父亲)
                    <p class="p_p">子</p>
                </li>
                <li>另一个li标签</li>
            </ul>
        </div>
    </div>

    <input type="button" value="children" id="children"/>

<script type="text/javascript" src="js/jquery-1.11.1.min.js"></script>
<script type="text/javascript">

    $("#children").click(function(){

        //  children() 方法返回被选元素的所有直接子元素 ,该方法只会向下一级对 DOM 树进行遍历

        //$(".parent").children().css("background","#690");
        //$("div").children("ul").css("border","3px green solid");

        // $(".parent").children(".par").css({"background":"green","color":"#fff"});

        // find()  方法返回被选元素的后代元素,一路向下直到最后一个后代 

        $(".parent").find("li").eq(1).css("background","red");

    });

</script>
</body>
 同胞拥有相同的父元素,能够在 DOM 树中遍历元素的同胞元素

 在 DOM 树中水平遍历

siblings() 方法返回被选元素的所有同胞元素
next() 方法返回被选元素的下一个同胞元素 , 该方法只返回一个元素
nextAll() 方法返回被选元素的所有跟随的同胞元素
nextUntil()  方法返回介于两个给定参数之间的所有跟随的同胞元素
prev() , prevAll() , prevUntil()   方法的工作方式与上面的方法类似,只不过方向相反而已:
它们返回的是前面的同胞元素(在 DOM 树中沿着同胞元素向后遍历,而不是向前)

<style type="text/css">
            *{margin:0;padding:0;}
            .parent{width:600px;}
            .parent .p_ul{border:3px solid red;}
            .parent ul li{list-style:none;}
            .parent,ul,li,p,div{border:1px solid green;padding:5px;margin:10px;}

</style>

<body>

    <div class="parent">(太爷)
        <div class="par"> par
            <ul class="p_ul">(爷爷) ul
                <li class="p_li">(父亲) li
                    <p class="p_p">子 p</p>
                </li>
                <li>另一个li标签</li>
            </ul>
            <p id="one">我是一个p标签</p>
            <p>我是一个p标签</p>
            <div>我是一个div标签</div>
            <p id="end">由于需要,我又写了一个p标签</p>
        </div>
    </div>

    <input type="button" value="siblings" id="siblings"/>
    <input type="button" value="next" id="next"/>
    <input type="button" value="nextAll" id="nextAll"/>
    <input type="button" value="nextUntil" id="nextUntil"/>

<script type="text/javascript" src="js/jquery-1.11.1.min.js"></script>
<script type="text/javascript">

    // siblings()方法返回被选元素的所有同胞元素
    $("#siblings").click(function(){
        // $(".p_ul").siblings("p").css("background","red");
        $(".p_ul").siblings("p").hide();
    });

    // next()方法返回被选元素的下一个同胞元素 , 该方法只返回一个元素
    $("#next").click(function(){
        $(".p_ul").next("p").css("background","red");
    });

    // nextAll()方法返回被选元素的所有跟随的同胞元素
    $("#nextAll").click(function(){
        $(".p_ul").nextAll().css("background","red");
    });

    // nextUntil()  查找当前元素之后所有的同辈元素,直到遇到匹配的那个元素为止
    $("#nextUntil").click(function(){
        $("#one").nextUntil("#end").css("background","red");
    });

</script>

</body>
  缩写搜索元素的范围

 三个最基本的过滤方法是:first(), last() 和 eq(),它们允许您基于其在一组元素中的位置来选择一个特定的元素。其他过滤方法

 比如 filter() 和 not() 允许您选取匹配或不匹配某项指定标准的元素
  first() 方法返回被选元素的首个元素
  last() 方法返回被选元素的最后一个元素
  eq() 方法返回被选元素中带有指定索引号的元素
  filter() 方法允许您规定一个标准。不匹配这个标准的元素会被从集合中删除,匹配的元素会被返回
  not() 方法返回不匹配标准的所有元素

<style type="text/css">
            *{margin:0;padding:0;}
            .parent{width:600px;}
            .parent .p_ul{border:3px solid red;}
            .parent ul li{list-style:none;}
            .parent,ul,li,p,div{border:1px solid green;padding:5px;margin:10px;}
</style>

<body>

    <div class="parent">(太爷)
        <div class="par"> par
            <ul class="p_ul">(爷爷) ul
                <li class="p_li">(父亲) li
                    <p class="p_p">子 p</p>
                </li>
                <li>另一个li标签</li>
                <li>我是第三个li标签</li>
            </ul>
            <p id="one">我是一个p标签 one</p>
            <p>我是一个p标签</p>
            <div>我是一个div标签</div>
            <p id="end">由于需要,我又写了一个p标签</p>
        </div>
    </div>

    <input type="button" value="first" id="first"/>
    <input type="button" value="last" id="last"/>
    <input type="button" value="eq" id="eq"/>
    <input type="button" value="filter" id="filter"/>
    <input type="button" value="not" id="not"/>

<script type="text/javascript" src="js/jquery-1.11.1.min.js"></script>
<script type="text/javascript">

    $("#first").click(function(){
        //   first() 方法返回被选元素的首个元素
        $(".p_ul").find("li").first().css("background","red");
    });

    $("#last").click(function(){
        //   last() 方法返回被选元素的最后一个元素
        $(".p_ul").find("li").last().css("background","green");
    });

    //  eq() 方法返回被选元素中带有指定索引号的元素
    $("#eq").click(function(){
        $(".p_ul").find("li").eq(-1).css("background","green");
    });    

    //  filter() 方法允许您规定一个标准。不匹配这个标准的元素会被从集合中删除,匹配的元素会被返回
    $("#filter").click(function(){
        //$("p").filter("#one").css("background","yellow");
        $("p").filter("#one, :last").css("background","yellow");

    });    

    // 从p元素中删除带有 one 的ID的元素
    $("#not").click(function(){
        $("p").not("#one").css("background","yellow");
    });    

</script>

</body>
时间: 2024-10-08 18:55:51

第九节(jQuery的遍历、祖先、后代、同胞、过滤)的相关文章

Jquery 的遍历,祖先、后代、同胞以及其过滤

什么是遍历? jQuery 遍历,意为“移动”,用于根据其相对于其他元素的关系来“查找”(或选取)HTML 元素.以某项选择开始,并沿着这个选择移动,直到抵达您期望的元素为止. 下图展示了一个家族树.通过 jQuery 遍历,您能够从被选(当前的)元素开始,轻松地在家族树中向上移动(祖先),向下移动(子孙),水平移动(同胞).这种移动被称为对 DOM 进行遍历. 图示解释: <div> 元素是 <ul> 的父元素,同时是其中所有内容的祖先. <ul> 元素是 <l

jQuery 遍历 - 祖先:向上遍历 DOM 树,以查找元素的祖先

jQuery 遍历 - 祖先 祖先是父.祖父或曾祖父等等. 通过 jQuery,您能够向上遍历 DOM 树,以查找元素的祖先. 向上遍历 DOM 树 这些 jQuery 方法很有用,它们用于向上遍历 DOM 树: parent() parents() parentsUntil() jQuery parent() 方法 parent() 方法返回被选元素的直接父元素. 该方法只会向上一级对 DOM 树进行遍历. 下面的例子返回每个 <span> 元素的直接父元素: 实例 $(document).

JQuery的遍历

1.JQuery的遍历 1.什么叫遍历 遍历即为"移动",具体的意思是从某一位置开始,到达另一个位置 2.遍历--祖先 1.祖先是父,祖父这些.通过DOM,你可以向上遍历. 2.向上遍历的方法: parent() parents() parentUntil() 3.parent()实例 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="utf-8"> 5 <

jquery:树遍历

.children() 获得元素集合中每个匹配元素的子元素,选择器选择性筛选. <!DOCTYPE html> <html> <head> <style> body { font-size:16px; font-weight:bolder; } p { margin:5px 0; } </style> <script src="http://code.jquery.com/jquery-latest.js"><

[ExtJS学习笔记]第九节 Extjs5的mvc与mvvm框架结构简介

本文地址:http://blog.csdn.net/sushengmiyan/article/details/38537431 本文作者:sushengmiyan -------------------------------------------------------------资源链接----------------------------------------------------------------------- 翻译来源:http://docs.sencha.com/ext

Jquery节点遍历

jquery 节点遍历 <html> <head> <title></title> <script src="Jquery/jquery-1.10.2.min.js" type="text/javascript"></script> </head> <body> <div>AA</div> <div>BB</div> <

JQuery+javascript遍历tr td

function InitTable(tableID, trName) { $(tableID + " tr").each(function (index, element) { if (index == 0 || index == $(tableID + " tr").length - 1) { return true; } var s = element.cells[0].innerHTML; if ($.trim(s) != '') { if (s.index

JAVA 年轻代收集器 第九节

JAVA 年轻代收集器  第九节 继续上一章所讲的,STW即GC时候的停顿时间,他会暂停我们程序中的所有线程.如果STW所用的时间长而且次数多的话,那么我们整个系统稳定性以及可用性将大大降低. 因此我们在必要的时候需要对虚拟机进行调优,那么调优的主要目标之一就是降低STW的时间,也就是减少Full GC的次数.那么这里我们从调优的角度来分析各个收集器的优势与不足. 首先从作用于年轻代的收集器开始(采用复制的收集算法): Serial收集器:一个单线程收集器,在进行回收的时候,必须暂停其他所有的工

jquery学习——遍历

1.each() $(selector).each(function(index,element)) var arr = [ "a", "bb", "ccc" ]; $.each(arr,function(i,a){ console.log(i+":"+a); }); //直接对jquery对象遍历 $(arr).each(function(i,a){ console.log(i+":"+a); }); 其