jQuery 노드를 생성/추가/이동/삭제 하기
1 2 3 4 5 6 7 | <ul> <li id="menu1">menu1</li> <li id="menu2">menu2</li> <li id="menu3">menu3</li> <li id="menu4">menu4</li> <li id="menu5">menu5</li> </ul> |
분류 |
내용 |
jQuery DOM 핵심 프로퍼티 및 메서드 |
노드 생성 / 추가 |
노드 생성 |
$("DOM 문자열"); |
첫 번째 자식 노드로 추가 |
$부모노드.prepend($추가노드) $추가노드.prependTo($부모노드) |
|
마지막 번째 자식 노드로 추가 |
$부모노드.append($신규노드) $신규노드.appendTo($부모노드) |
|
특정 노드의 이전 위치로 추가 |
$(기준노드).before($추가노드) $(추가노드).insertBefore($기준노드) |
|
특정 노드의 다음 위치에 추가 |
$기준노드.after($추가노드) $추가노드.insertAfter($기준노드) |
|
노드 이동 | 첫 번째 자식 노드로 이동 | $부모노드.prepend($이동노드) $추가노드.prependTo($이동노드) |
마지막 번째 자식 노드로 이동 | $부모노드.append($이동노드) $이동노드.appendTo($부모노드) | |
특정 노드의 이전으로 이동 | $(이동노드).before($기준노드) $(기준노드).insertBefore($이동노드) | |
특정 노드의 다음 노드로 이동 | $이동노드.after($기준노드) $기준노드.insertAfter($이동노드) | |
노드 삭제 | 특정 노드 삭제 | $대상.remove() |
모든 자식 노드 제거 | $대상.children().remove() |
노드 생성하기
1 | var $신규 노드 = $("신규DOM"); |
$()함수 내부에서 매개변수로 받은 태그 노드 정보를 파싱하여 태그와 대응하는 HTMLLiElement 객체를 생성하는 작업이 일어납니다. 생성된 객체를 쉽게 사용할 수 있게 jQuery 객체로 만들어 반환해 줍니다.
1 2 3 4 5 6 | $("#btnAdd").click(function() { count = 1; $li = $("<li>new menu" + count + "</li>"); console.log($li.get(0)); }); |
jQuery 객체가 없다면 순수 자바스크립트로 이렇게 노드를 생성해줍니다.
1 2 3 4 5 6 7 8 9 10 11 12 | $("#javascriptbtnAdd").click(function() { count++; //신규 노드를 생성 var li = document.createElement("li"); //신규 노드의 텍스트 생성 var liText = document.createTextNode("new menu" + count); li.appendChild(liText); console.log(liText); }); 0 |
노드 추가하기
신규 노드를 첫 번째 자식 노드로 추가
1 2 | $부모노드.prepend($추가노드) $추가노드.prependTo($부모노드) |
1 2 3 4 5 6 7 | //prepend() $li = $("<li>new menu</li>"); $("ul").prepend($li); //prependTo $li = $("<li>new menu</li>"); $li.prependTo("ul"); |
신규 노드를 마지막 번째 자식 노드로 추가
1 2 | $부모노드.append($신규노드) $신규노드.appendTo($부모노드) |
1 2 3 4 5 6 7 8 9 10 | //append $("ul").append("<li>new menu</li>"); //appendTo $("<li>new menu</li>").appendTo("ul"); //선택자를 이용용하여 jQuery객체로 사용할 수 있다. $li = $("<li>new menu</li>"); $("ul").append($li); $($li).appendTo("ul"); |
특정 노드의 이전 위치에 추가
1 2 | $(기준노드).before($추가노드) $(추가노드).insertBefore($기준노드) |
1 2 3 4 5 6 7 | $li = $("<li>new menu</li>"); //before $("#menu3").before($li); //insertBefore $li.insertBefore("#menu3"); | cs |
특정 노드 다음에 노드 추가
1 2 | $기준노드.after($추가노드) $추가노드.insertAfter($기준노드) |
1 2 3 4 5 6 7 | $li = $("<li>new menu</li>"); //after $("#menu3").after($li); //insertAfter $li.insertAfter("#menu3"); |
노드 이동하기
첫 번째 노드로 이동
1 2 | $부모노드.prepend($이동노드) $이동노드.prependTo($부모노드) |
1 2 3 4 5 6 | //prepend var $menu3 = $("#menu3"); $("ul").prepend($menu3); //prependTo $("#menu3").prependTo("ul"); | cs |
마지막 번째 노드로 이동
1 2 | $부모노드.append($이동노드) $이동노드.appendTo($부모노드) | cs |
1 2 3 4 5 6 | //append var $menu3 = $("#menu3"); $("ul").append($menu3); //appendTo $("#menu3").appendTo("ul"); | cs |
특정 노드의 이전 노드로 이동
1 2 | $(이동노드).insertBefore($기준노드) $(기준노드).before($노드) |
1 2 3 4 5 6 7 | var $menu3 = $("#menu3"); var $menu5 = $("#menu5"); //before $("#menu5").before($menu3); //insertBefore $("#menu3").insertBefore($menu5); |
특정 노드의 다음 노드로 이동
1 2 | $추가노드.insertAfter($기준노드) $기준노드.after($추가노드) |
1 2 3 4 5 6 7 | var $menu3 = $("#menu3"); var $menu5 = $("#menu5"); //after $("#menu5").after($menu3); //insertAfter $("#menu3").insertAfter($menu5); |
노드 삭제하기
1 | $(대상).remove(); |
1 2 3 4 | var $menu3 = $("#menu3"); $menu3.remove(); $("#menu5").remove(); |
자식 노드를 삭제하는 방법은 children()을 사용하면 됩니다.
1 | $("ul").children().remove(); |
'jQuery' 카테고리의 다른 글
jQuery 스타일 다루기 (0) | 2018.07.18 |
---|---|
jQuery 노드의 내용 읽고 변경하기 (0) | 2018.07.18 |
jQuery 선택자 다루기 (0) | 2018.07.17 |
jQuery 선택자(자식, 부모, 형제) (2) | 2018.07.17 |
jQuery 선택자(ID, CLASS, TAG, 속성) (0) | 2018.07.16 |