jQuery:遍历节点

1 祖先元素

用于向上遍历 DOM 树的方法

  parent() 返回被选元素的直接父元素,仅仅是上一级 (找爸爸)

  parents() 返回被选元素的所有祖先元素,它一路向上直到文档的根元素,可以选择辈分

<p><button>测试</button></p>
<ul>
    <li>a</li>
    <li>
        <b>b</b>
    </li>
    <li>c</li>
</ul>

<script src="js/jquery-3.4.1.min.js"></script>
<script>
    $("button").click(function(){
        //var x = $("b").parent().html(); // 找爸爸
        //var x = $("b").parents("ul").html(); // 找祖宗 ul
        //var x = $("b").parents("body").html(); // 找祖宗 body
        alert( x );
    });
</script>

2 同辈元素

  next() 获取紧邻匹配元素之后的元素

  prev() 获取紧邻匹配元素之前的元素

  siblings( [selector] ) 获取位于匹配元素前面和后面的所有同辈元素

<button>测试</button>
<p>p1</p>
<ul>
    <li>a</li>
    <li>
        <b>b</b>
    </li>
    <li>c</li>
</ul>
<p>p2</p>
<p id="x">p3</p>

<script src="js/jquery-3.4.1.min.js"></script>
<script>
    $("button").click(function(){
    //var x = $("ul").next().text(); // 紧邻的下一个元素
    //var x = $("ul").prev().text(); // 紧邻的上一个元素
    //var x = $("ul").siblings("#x").text(); // 所有的兄弟中,id=x的

    var arr = $("ul").siblings(); // ul的所有兄弟,1个button,3个p,2个script
    for(var i = 0 ;i< arr.length ;i++){
        alert(arr[i]);
    }
    });
</script>

3 后代元素

后代是子、孙、曾孙等等

  children( [selector] ) 方法返回被选元素的所有直接子元素,“孩子”

<button>测试</button>
<ul>
    <li>a</li>
    <li>b</li>
    <li>c</li>
</ul>

<script src="js/jquery-3.4.1.min.js"></script>
<script>
    $("button").click(function(){
    //var x = $("ul").children().text(); //所有子节点:abc
    var x = $("ul").children("li:first").text(); //ul中的第一个子节点
    alert(x);
});
</script>

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

<button>测试</button>
<ul>
    <li>盘古</li>
    <li>蚩尤</li>
    <li>刑天
        <p>龚工</p>
    </li>
    <h3>祝融</h3>
</ul>

<script src="js/jquery-3.4.1.min.js"></script>
<script>
    $("button").click(function(){
        //var x = $("ul").find("p").text(); //在ul中查找p元素,忽略层级
        //var x = $("ul").find("h3").text(); //在ul中查找h3元素,忽略层级
        var x = $("ul").find().text(); // 找什么?不知道!
        alert(x);
});
</script>

4 元素的过滤

  first():过滤第一个元素

  last():过滤最后一个元素

  eq(index):过滤到下标为index的元素

  not():除了什么之外的元素

  is():返回布尔,判断是不是这种元素

<button>测试</button>
<ul>
    <li>盘古</li>
    <li>蚩尤</li>
    <li>刑天</li>
</ul>

<script src="js/jquery-3.4.1.min.js"></script>
<script>
    $("button").click(function(){
        //var x = $("li").first().text(); // 第一个li
        //var x = $("li").last().text(); // 最后一个li
        //var x = $("li").eq(1).text(); // 下标为1的li
        //var x = $("li").not("li:eq(1)").text(); // 除了下标为1的其余所有li
        var x = $("li").parent().is("ul"); // 返回布尔型,li的父节点是不是ul
      
     alert(x); });
</script>
原文地址:https://www.cnblogs.com/JasperZhao/p/15205569.html