Front-end/Javascript

(JavaScript)DOM -appendChild,insertBefore

doheun 2023. 3. 3. 10:29
반응형

DOM

실습 코드

HTML
<body>
<h1>태그 추가하기</h1>
<button onclick="addAppend()">appendChild()실행</button>
<button onclick="addBefore()">insertBefore()실행</button>
<button onclick="moveEle()">appendChild()활용 요소이동</button>
<fieldset id="addEle">
    <legend>부모태그</legend>
    <div>태그</div>
</fieldset>
<fieldset id="addEle2">
    <legend>이동할 요소박스</legend>
</fieldset>
</body>

1. appendChild(node객체)

자식요소들 중에 마지막 위치에 추가

    appendChild("\<p> text\</p>") 불가
    var p=document.getElementById("p");
    var p=document.createElement("p");
    div.appendChild(p);

appendChild()실행 버튼 클릭시

<script type="text/javascript">
    var count=0;
    function addAppend(){
        var fieldset=document.getElementById("addEle");
        var p=document.createElement("p");//태그 객체 생성
//         p.textContent="자식태그들 중 마지막에 붙여 넣는다";
        var txt=document.createTextNode("자식태그들 중 마지막에 붙여 넣는다"+(count++));
        p.appendChild(txt);
        fieldset.appendChild(p);
    }
</script>

txt도 바로 넣어주기 보다는 수정을 위해 따로 변수에 담아둔다

2.insertBefore(새로운 node, 기존 node)

특정 엘리먼트 앞에 추가

    function addBefore(){
        var fieldset=document.getElementById("addEle");
        var newP=document.createElement("p");
        newP.textContent="엘리먼트 앞에 붙여넣기";

//         var oldDiv=document.getElementsByTagName("div")[0];
        var oldDiv=document.querySelectorAll("#addEle > div")[0];

        fieldset.insertBefore(newP,oldDiv);
    }

3.appendChild() 활용 요소 이동

function moveEle(){
        var moveLast=document.getElementById("addEle").lastElementChild;
        document.getElementById("addEle2").appendChild(moveLast);
    }

기타 참고

  1. 객체.children
  2. innerHTML : HTML요소를 태그 내부에 추가(덮어씌우기)
  3. textContent : Text요소를 태그 내부에 추가(덮어씌우기)
  4. input태그는 입력을 안할시 공백처리
반응형

'Front-end > Javascript' 카테고리의 다른 글

(JavaScript)DOM탐색 속성  (0) 2023.03.02
(JavaScript)window객체-open,close  (0) 2023.02.28
(JavaScript)날짜 객체  (0) 2023.02.27
(JavaScript)로또  (0) 2023.02.27
(JavaScript)함수  (0) 2023.02.23