400===Dev Library/jQuery

jQuery Traversing(요소 이동하기)

블로글러 2020. 11. 25. 09:12

Traversing 이란 "move through" 또는 이동하다 즉 HTML element(태그)를 찾는다. 

 : HTML은 DOM tree 구조여서 다른 element와의 관계 속에서 태그를 찾아야 한다. 

 

1 div : ul의 parent, 하위 모든 태그 ancestor

2 ul : 좌측, 우측 li 태그의 parent 및 div 태그 child

3 좌측 li : span 태그 parent, ul 태그 child, div 태그 descendant

4 span 태그는 li 태그 child, ul 및 div 태그 descendant

5 li 태그는 서로 sibling (동일한 부모 보유)

6 b 태그는 우측 li 태그 child, ul 및 div 태그 descendant

 

parent()

정의: 선택한 element의 parent를 리턴. (children() 은 선택한 element의 모든 child 리턴)

예제:

<!DOCTYPE html>
<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").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>

결과:

 


find()

  정의: 선택한 element의 decendant를 전부 리턴. 

  예제:

<!DOCTYPE html>
<html>
<head>
<style>
.descendants * { 
  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(){
  $("div").find("span").css({"color": "red", "border": "2px solid red"});
});
</script>
</head>
<body>

<div class="descendants" style="width:500px;">div (current element) 
  <p>p (child)
    <span>span (grandchild)</span>   
  </p>
  <p>p (child)
    <span>span (grandchild)</span>
  </p> 
</div>

</body>
</html>

  결과:


filter()

정의: 지정된 조건의 element 만 리턴

예제:

<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
  $("p").filter(".intro").css("background-color", "yellow");
});
</script>
</head>
<body>

<h1>Welcome to My Homepage</h1>

<p>My name is Donald.</p>
<p class="intro">I live in Duckburg.</p>
<p class="intro">I love Duckburg.</p>
<p>My best friend is Mickey.</p>

</body>
</html>

결과:

728x90

'400===Dev Library > jQuery' 카테고리의 다른 글

jQuery Ajax  (0) 2020.11.25