jQuery Traversing Ancestors

method ที่ใช้ในการสำรวจ หรือค้นหา element ของ HTML ที่อยู่เหนือกว่า

  • parent() เป็นการส่งคืนค่า parent โดยตรงของ element ที่เลือกเพียงหนึ่งระดับ 
  • parents() เป็นการส่งคืนค่า parent ทั้งหมดของ element ที่เลือก
  • parentsUntil() เป็นการคืนค่าระหว่าง 2 element ที่เลือก

 

1.parent()

<html>
<head>
<style>
.ancestors * { 
  display: block;
  border: 2px solid lightgrey;
  color: lightgrey;
  padding: 5px;
  margin: 15px;
}
</style>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
  $("ul").parent().css({"color": "red", "border": "2px solid red"});
});
</script>
</head>
<body>

<div class="ancestors">
  <div style="width:500px;">div (great-grandparent)
    <ul>ul (grandparent)  
      <li>li (direct parent)
        <span>span</span>
      </li>
    </ul>   
  </div>

  <div style="width:500px;">div (grandparent)   
    <p>p (direct parent)
      <span>span</span>
    </p> 
  </div>
</div>

</body>
</html>

ไฟล์ที่ 1 parent()

จากไฟล์ที่ 1 เป็นการค้นหา parent ของ <ul> ซึ่ง parent ของ <ul> คือ <div> นั่นเอง

 

2.parents()

<html>
<head>
<style>
.ancestors * { 
  display: block;
  border: 2px solid lightgrey;
  color: lightgrey;
  padding: 5px;
  margin: 15px;
}
</style>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
  $("li").parents().css({"color": "red", "border": "2px solid red"});
});
</script>
</head>

<body class="ancestors">body (great-great-grandparent)
  <div style="width:500px;">div (great-grandparent)
    <ul>ul (grandparent)  
      <li>li (direct parent)
        <span>span</span>
      </li>
    </ul>   
  </div>
</body>

</html>

ไฟล์ที่ 2 parents()

จากไฟล์ที่ 2 เป็นการค้นหา parent ทั้งหมดของ element <li> ซึ่งประกอบไปด้วย <ul>,<div>,<body> , …

 

3.parentsUntil()

<html>
<head>
<style>
.ancestors * { 
  display: block;
  border: 2px solid lightgrey;
  color: lightgrey;
  padding: 5px;
  margin: 15px;
}
</style>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
  $("span").parentsUntil("div").css({"color": "red", "border": "2px solid red"});
});
</script>
</head>

<body class="ancestors"> body (great-great-grandparent)
  <div style="width:500px;">div (great-grandparent)
    <ul>ul (grandparent)  
      <li>li (direct parent)
        <span>span</span>
      </li>
    </ul>   
  </div>
</body>

</html>

ไฟล์ที่ 3 parentsUntil()

จากไฟล์ที่ 3 element ที่เลือกคือ <span> กับ <div> ซึ่ง element ระหว่าง 2 element นี้คือ <ul> กับ </li>