본문 바로가기

Web Dev/Javascript

jQuery로 특정 <dive> 태그 위치 이동 하기 prependTo 함수 사용법

반응형

 <div class="chargerSummary">
    <div class="chargerBox">
        <div class="charger charger_slow " >
            <div class="dispFlex">
              //내용
            </div> 
        </div>
        <div class="charger charger_ac3" >
            <div class="dispFlex">
                //내용
            </div>
        </div>
        <div class="charger charger_dccom" >
            <div class="dispFlex">
               //내용
            </div>
        </div>
           <div class="charger charger_dcdemo" >
            <div class="dispFlex">
                //내용
            </div>
        </div>
        <div class="charger charger_h" >
            <div class="dispFlex">
              //내용
            </div>
        </div>
    </div>

위의 HTML을 보면 div 태그 별 각 다른 className을 가지고 있습니다. 

div 태그가 나열 되어있는데 특정 div 태그의 위치를 변경하고 싶었습니다. 

저는 기존에 특정 값이 존재하면 특정 div에 active 속성 값을 주는 코드를 가지고 있었습니다. 

 

if ($(".count_dcdemo").text() !== "0") {
    // 해당 태그에 active 클래스 추가
    $(".charger_dcdemo").addClass("active");
    $(".dcDemo").addClass("active");

}

 

div 태그 위치 이동을 위해 코드를 추가해 보겠습니다. 

 

우선 prependTo 함수와 parent 함수는 jQuery에서 제공되는 DOM 조작을 위한 함수입니다. 

그래서 jQuery를 사용하셔야합니다. 

 

 

[prependTo 함수]

prependTo 함수는 선택한 요소를 지정한 부모 요소의 가장 앞쪽에 추가합니다.

즉, 선택한 요소를 특정 부모 요소의 자식 요소 중 가장 첫 번째로 위치하도록 이동시킵니다.

사용법은 다음과 같습니다

$(선택한 요소).prependTo(부모 요소);

예를 들어, $(".charger_dcdemo").prependTo($(".chargerBox"));는 charger_dcdemo 클래스를 가진 요소를 .chargerBox 클래스를 가진 부모 요소의 가장 앞쪽으로 이동시킵니다.

 

[parent 함수]

parent 함수는 선택한 요소의 부모 요소를 선택합니다.

즉, 선택한 요소의 직계 부모를 가져옵니다.

사용법은 다음과 같습니다

$(선택한 요소).parent();

 

-> 해당 함수는 위의 prependTo  함수의 인자로 부모요소 값을 넣어줘야 하는데 기억을 할 필요 없게 해주는 코드입니다. 

(내가 선택한 요소의 부모 요소 ) 

 

따라서 위의 코드에서 chargerDemo.prependTo(chargerDemo.parent());는 chargerDemo 요소를 그 부모 요소의 가장 앞쪽으로 이동시키는데, chargerDemo.parent()는 chargerDemo의 부모 요소를 선택하고, prependTo 함수를 통해 해당 부모 요소의 가장 앞쪽으로 chargerDemo를 이동시킵니다.

if ($(".count_dcdemo").text() !== "0") {
    // 해당 태그에 active 클래스 추가
    $(".charger_dcdemo").addClass("active");
    $(".dcDemo").addClass("active");
    
    $(".charger_dcdemo").prependTo($(".charger_dcdemo").parent());
    

}

dc 콤보 태그는 3번째 div 태그로 위치하고 있었으나 해당 코드 적용 후 맨 앞으로 나와 있는 것을 볼 수 있습니다. 

 
반응형