제이쿼리 $(this)를 쓸 경우 인접셀렉터는 어떻게 코딩하나요?

제이쿼리 $(this)를 쓸 경우 인접셀렉터는 어떻게 코딩하나요?

QA

제이쿼리 $(this)를 쓸 경우 인접셀렉터는 어떻게 코딩하나요?

본문


<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>        <style type="text/css">
dl{
    width:300px;
    margin:50px auto;
}
dl dt{
    background:#7CADB6;
    cursor:pointer;
}
dl dd{
    border:1px solid #7CADB6;
    height:250px;
    margin:0;
}
        </style>
        <script type="text/javascript">
$(function(){
    $('dt').on('click',function(){
        if($(this)+$('dd').css('display')=='block'){
            $(this)+$('dd:not(:animated)').slideUp('slow');
        }else{
            $(this)+$('dd').slideDown('slow');
        }
    });
});
        </script>
    </head>
    <body>
        <dl>
            <dt>슬라이딩 효과로 표시상태를 변경한다</dt>
            <dd>
                    slideDown()/slideUp()는 show()/hide() 와는 다른 슬라이딩 애니메이션 효과로
표시/비표시를 변경하는 명령입니다.
            </dd>
        </dl>
        <dl>
            <dt>슬라이딩 효과로 표시상태를 변경한다</dt>
            <dd>
                    slideDown()/slideUp()는 show()/hide() 와는 다른 슬라이딩 애니메이션 효과로
표시/비표시를 변경하는 명령입니다.
            </dd>
        </dl>
        
    </body>
</html>

 

위 소스입니다. 

 

dt를 클릭하면 dd가 slideDown/slideUp 하는 것을 작동시키는 연습인데요..-.-;;

 

 

처음에는

각 dt에다가 id or class를 줘서 각각을 클릭하면 각각의 dd가 slideDown/slideUp 하도록 작동은 됩니다.

 

그런데, 

dt/dd가 여러개일 경우에는 그만큼 각각의 dt에다가 id or class를 주는 것이 비효율적이고 

번거롭잖아요..-.-;;

 

그래서, 

$(this)를 이용해서 한방에 만들려고 하는데요..

 

위 소스를 보시면

여기서 $(this)는 클릭한 각각의 dt 입니다.

 

그런데, dd는 자손셀렉터가 아니라 인접셀렉터인데요..

 

이 경우, 

css에서는 인접셀렉터는 '+'기호를 이용합니다..

 

그런데, 지금까지 공부한 제이쿼리에서 셀렉터에는

인접셀렉터라면

가령, 

$('h1+p') 이렇게 하면 되는데..

 

$(this)의 경우, 

$(this+p) <<<== 이렇게 하는 것은 없고,,

$(this)+$('p') <<<== 이렇게 하는 것도 없고,,

 

이처럼

$(this)를 사용할 경우 인접셀렉터는 어떻게 해야하나요..? -.-;;;

이 질문에 댓글 쓰기 :

답변을 작성하시기 전에 로그인 해주세요.
전체 613
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT