jQuery 속성 범위 제한

Element 객체에서 getElementsBy* 메소드를 실행하면 조회의 범위가 그 객체의 하위 엘리먼트로 제한됨 jQuery에서는 어떻게 하는지 학습

selector context

  • jQuery에서 조회 범위를 제한하는 방법중 가장 간편한 방법은 조회할 때 조회 범위를 제한하는 것임. 그 제한된 범위를 jQuery에서는 selector context라고 함

  • $(css선택자, selector context) 이렇게 jQuery 함수는 2번째 인자로 seleotr context를 받아 조회 범위를 제한할 수 있음 (예시 - $('.marked', '#active') : marked 클래스를 가진 요소들을 조회하는데 조상요소 중에서 active라는 아이디값을 가진 요소들만을 검색)

  • $('.marked', '#active') = $('#active .marked')

.find()

  • find는 jQuery 객체 내에서 엘리먼트를 조회는 기능을 제

  • $('#active').find(.marked) == $('.marked', '#active') = $('#active .marked')

<!DOCTYPE html>
<html lang="ko">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title></title>
</head>
<body>
  <ul>
    <li>
      <ul id="front">
        <li class="checked">HTML</li>
        <li>CSS</li>
        <li class="checked">JavaScript</li>
      </ul>
    </li>  
    <li>
      <ul id="back">
        <li class="checked">JAVA</li>
        <li class="checked">Python</li>
        <li>PHP</li>
      </ul>
    </li>
    <li>
      <ul id="etc">
        <li class="checked">git</li>
        <li>docker</li>
        <li>notion</li>
      </ul>
    </li>
  </ul>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
  <script>
    // selector context를 이용해 id값이 front인 요소를 조회 범위로 제한하고,
    // 그 하위의 checked 클래스를 가진 요소를 조회함
    $('.checked', '#front').css('color', 'blue');
    // CSS 선택자만 사용하여 위와 같은 기능을 수행
    $('#back .checked').css('color', 'red');
    // find 메소드를 사용하여 위와 같은 기능을 수행,
    // 체이닝하며 변경하고 조회하기 편리함(etc id값을 가진 요소의 하위 객체의 색상을 전부
    //yellowgreen으로 변경후 하위 요소들중 checked 클래스를 가진 요소만 찾아서 색상을 green으로 변경)
    $('#etc').css('color', 'yellowgreen').find('.checked').css('color', 'green');
    
  </script>
</body>
</html>

Last updated

Was this helpful?