[jQuery] 기본 선택자(basic selector) 조합

2022. 6. 8. 14:55JavaScript/jQuery

1. 기본 선택자 조합

  • 경우에 따라서는 기본 선택자를 조합해야 하는 경우가 있습니다.
  • 에를 들어 div 태그들 중에 class가 a인 태그를 선택하겠다면 태그 이름과 클래스 속성을 조합하여 선택해야 합니다.
<div class="a1">div class a1</div>
<div class="a2">div class a2</div>
<p class="a3">p class a3</p>
<p class="a1">p class a1</p>

2. 기본 선택자 조합 종류

  • 선택자1, 선택자2 : 동시에 여러 태그를 선택할 때 사용합니다.
  • 선택자 1 > 선택자2 : 태그의 바로 하위의 태그들을 선택할때 사용합니다.
  • 선택자1 선택자2 : 태그 내부의 모든 태그들을 선택할 때 사용합니다
  • 선택자1선택자2 : 모든 선택자를 만족하는 태그를 선택합니다.
  • 선택자1 + 선택자2 : 선택자1 태그 바로 다음에 있는 선택자2 태그를 선택합니다.
  • 선택자1 ~ 선택자2 : 선택자1 태그 다음에 있는 모든 선택자2 태그를 선택합니다.

 

3. 선택자1, 선택자2

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>jQuery 실습</title>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script>
    $(function(){
        // 선택자1, 선택자2 조합 : 동시에 여러 태그를 선택

        // before
        //$("div").css("background-color", "yellow");
        //$("p").css("background-color", "yellow");

        // after
        $("div, p").css("background-color", "yellow");

        // before
        // $("#a1").css("color", "red");
        // $("#a2").css("color", "red");

        // after
        $("#a1, #a2").css("color", "red");
    });
</script>
</head>
<body>
    <div id="a1">div 1</div>
    <div>div 2</div>
    <p id="a2">p 1</p>
    <p>p 2</p>
</body>
</html>

4. 선택자1 > 선택자2

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>jQuery 실습</title>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script>
    // 선택자1 > 선택자2 : 태그의 바로 하위의 태그들을 선택
    $(function(){
        $("#a1 > h1").css("background-color", "yellow");
    });
</script>
</head>
<body>
    <div id="a1">
        <h1>자식 태그 h1</h1>
        <div>
            <h1>자손 태그 h1</h1>
        </div>
    </div>
</body>
</html>

5. 선택자1 선택자2

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>jQuery 실습</title>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script>
    // 선택자1 선택자2 : 태그 내부의 모든 태그들을 선택
    $(function(){
        $("#a1 h1").css("background-color","yellow");
    });
</script>
</head>
<body>
    <div id="a1">
        <h1>자식 태그 h1</h1>
        <div>
            <h1>자손 태그 h1</h1>
        </div>
    </div>
</body>
</html>

6. 선택자1선택자2

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>jQuery 실습</title>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script>
    // 선택자1.선택자2 : 모든 선택자를 만족하는 태그를 선택
    $(function(){
        // div태그이면서 class가 a1을 포함하는 태그 선택
        $("div.a1").css("background-color", "yellow");
        $("div.a2").css("background-color", "red");
        $("p.a1").css("background-color", "purple");
        $("p.a2").css("background-color", "blue");
    });
</script>
</head>
<body>
    <div class="a1">div a1</div>
    <div class="a2">div a2</div>
    <p class="a1">p a1</p>
    <p class="a2">p a2</p>
</body>
</html>

7. 선택자1 + 선택자2

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>jQuery 실습</title>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script>
    // 선택자1 + 선택자2 : 선택자1 태그 바로 다음에 있는 선택자2 태그 선택
    // 단, 선택자1 태그 바로 다음에 있는 태그가 선택자2 태그가 아닌경우 적용되지 않음
    $(function(){
        $("#a0 + p").css("background-color", "red");
        $("#a1 + p").css("background-color", "yellow");
    })
</script>
</head>
<body>
    <p>p 태그</p>
    <p id="a0">p 태그</p>
    <p>p 태그</p>
    <p id="a1">p 태그 a1</p>
    <div>div 태그</div>
    <p>p 태그</p>
    <p>p 태그</p>
    <p>p 태그</p>
    <p>p 태그</p>

</body>
</html>

8. 선택자1 ~ 선택자2

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>jQuery 실습</title>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script>
    // 선택자1 ~ 선택자2 : 선택자1 태그 다음에 있는 모든 선택자2 태그 선택
    $(function(){
        $("#a1 ~ p").css("background-color", "yellow");
    })
</script>
</head>
<body>
    <p>p 태그</p>
    <p>p 태그</p>
    <p>p 태그</p>
    <p id="a1">p 태그 a1</p>
    <div>div 태그</div>
    <p>p 태그</p>
    <p>p 태그</p>
    <p>p 태그</p>
    <p>p 태그</p>

</body>
</html>

Reference

source code : https://github.com/yonghwankim-dev/jQuery_study/tree/main/Selector2/src/main/webapp
윤재성의 처음 시작하는 jQuery Programming

'JavaScript > jQuery' 카테고리의 다른 글

[jQuery] 인덱스 필터 선택자  (0) 2022.06.09
[jQuery] 순서 필터 선택자  (0) 2022.06.09
[jQuery] 기본 선택자(basic selector)  (0) 2022.06.08
[jQuery] jQuery 함수와 Ready  (0) 2022.06.08
[jQuery] jQuery 개발환경 준비  (0) 2022.06.08