JavaScript DOM 학습 노트 5 ― 생 성 및 조작 노드

이전에 DOM 의 각종 노드 에 대한 접근 방법 을 배 웠 는데 DOM 에 포 함 된 내용 은 이 뿐만 이 아니 라 DOM 프로 그래 밍 은 DOM 트 리 가 구 축 된 후에 노드 를 추가 하 는 것 도 포함한다.
        1. 새 노드 만 들 기
        document 대상 에는 여러 노드 를 만 드 는 방법 이 포함 되 어 있 습 니 다.에서 모든 방법의 원형, 역할, IE, Firefox, Opera, Safari 등 브 라 우 저의 지원 상황 을 설명 하 는 표를 전문 적 으로 설계 했다.한눈 에 보면 거의 모든 사람들 이 지 지 를 받 는 방법 이다.
        노드 를 만 드 는 가장 유용 한 방법 은 주로 CreateElement (), CreateTextNode () 가 있 습 니 다. 다음은 각각 학습 합 니 다.
        2.CreateElement()、CreateTextNode()、appendChild()
        현재 다음 과 같은 요구 사항 이 있 습 니 다. HTML 의 DOM 트 리 를 불 러 온 후에 < p > 요 소 를 추가 합 니 다. 요소 의 텍스트 내용 은 'A New Element' 입 니 다.원본 html 는 다음 과 같 습 니 다:

  
  
  
  
  1. <html> 
  2.     <head> 
  3.         <title>createElement() Demo</title> 
  4.     </head> 
  5.     <body> 
  6.     </body> 
  7. </html> 

        이제 HTML 의 body 에 < p > A New Element < / p > 를 추가 하려 고 합 니 다.절 차 는 다음 과 같다.

  
  
  
  
  1. // : p  
  2. var oP = document.createElement("p"); 
  3. // :  
  4. var oTxt = document.createTextNode("A New Element"); 
  5. // : p  
  6. oP.appendChild(oTxt); 
  7. // : p body  
  8. document.body.appendChild(oP); 

추 가 된 효 과 를 표시 하기 위해 body 에 단 추 를 추가 하고 클릭 하 자마자 이 코드 를 실행 합 니 다.완전한 예 는 다음 과 같다.

  
  
  
  
  1. <html> 
  2.     <head> 
  3.         <title>createElement() Demo</title> 
  4.         <script type="text/javascript"> 
  5.             function createElementTest() { 
  6.                 // : p  
  7.                 var oP = document.createElement("p"); 
  8.                 // :  
  9.                 var oTxt = document.createTextNode("A New Element"); 
  10.                 // : p  
  11.                 oP.appendChild(oTxt); 
  12.                 // : p body  
  13.                 document.body.appendChild(oP); 
  14.             } 
  15.         </script> 
  16.     </head> 
  17.     <body> 
  18.         <input type="button" value=" " onclick="createElementTest()"/> 
  19.     </body> 
  20. </html> 

3. removeChild (), replace Child (), insert Before () 방법
        노드 를 추가 할 수 있 으 니 자 연 스 럽 게 노드 도 삭제 할 수 있다.노드 를 삭제 하려 면 parentNode 의 removeChild () 방법 으로 노드 를 삭제 할 수 있 습 니 다.여전히 위의 예 로 공부한다.

  
  
  
  
  1. // : p  
  2. var oP = document.body.getElementsByTagName("p").item(0); 
  3. // : p  
  4. var pNode = oP.parentNode; 
  5. // :  
  6. pNode.removeChild(oP); 

전체 코드 는 다음 과 같 습 니 다:

  
  
  
  
  1. <html> 
  2.     <head> 
  3.         <title>createElement() Demo</title> 
  4.         <script type="text/javascript"> 
  5.             function createElementTest() { 
  6.                 // : p  
  7.                 var oP = document.createElement("p"); 
  8.                 // :  
  9.                 var oTxt = document.createTextNode("A New Element"); 
  10.                 // : p  
  11.                 oP.appendChild(oTxt); 
  12.                 // : p body  
  13.                 document.body.appendChild(oP); 
  14.             } 
  15.  
  16.             function removeChildTest() { 
  17.                 // : p  
  18.                 var oP = document.body.getElementsByTagName("p").item(0); 
  19.                 // : p  
  20.                 var pNode = oP.parentNode; 
  21.                 // :  
  22.                 pNode.removeChild(oP); 
  23.             } 
  24.         </script> 
  25.     </head> 
  26.     <body> 
  27.         <input type="button" value=" " onclick="createElementTest()"/> 
  28.         <input type="button" value=" " onclick="removeChildTest()"/> 
  29.     </body> 
  30. </html> 

그 밖 에 우 리 는 노드 를 삭제 하지 않 고 노드 만 바 꿀 수 있다.물론 이것 도 교 체 된 노드 의 부모 노드 를 호출 하 는 방법 을 통 해 이 루어 져 야 한다.이제 p 요소 의 내용 을 Hello, World 로 바 꿉 시다!replace Child () 방법 은 두 가지 인자 가 있 습 니 다. 새 노드, 교체 노드 입 니 다.코드 는 다음 과 같 습 니 다:

  
  
  
  
  1. // :  
  2. var newTxt = document.createTextNode("Hello,World!"); 
  3. // :  
  4. var oldTxt = document.body.getElementsByTagName("p").item(0).childNodes.item(0); 
  5. // :  
  6. var oP = document.body.getElementsByTagName("p").item(0); 
  7. // :  
  8. oP.replaceChild(newTxt,oldTxt); 

텍스트 를 바 꾸 는 방법 을 실행 하기 위해 단 추 를 추가 합 니 다:

  
  
  
  
  1. <html> 
  2.     <head> 
  3.         <title>createElement() Demo</title> 
  4.         <script type="text/javascript"> 
  5.             function createElementTest() { 
  6.                 // : p  
  7.                 var oP = document.createElement("p"); 
  8.                 // :  
  9.                 var oTxt = document.createTextNode("A New Element"); 
  10.                 // : p  
  11.                 oP.appendChild(oTxt); 
  12.                 // : p body  
  13.                 document.body.appendChild(oP); 
  14.             } 
  15.  
  16.             function removeChildTest() { 
  17.                 // : p  
  18.                 var oP = document.body.getElementsByTagName("p").item(0); 
  19.                 // : p  
  20.                 var pNode = oP.parentNode; 
  21.                 // :  
  22.                 pNode.removeChild(oP); 
  23.             } 
  24.             function replaceChildTest() { 
  25.                 // :  
  26.                 var newTxt = document.createTextNode("Hello,World!"); 
  27.                 // :  
  28.                 var oldTxt = document.body.getElementsByTagName("p").item(0).childNodes.item(0); 
  29.                 // :  
  30.                 var oP = document.body.getElementsByTagName("p").item(0); 
  31.                 // :  
  32.                 oP.replaceChild(newTxt,oldTxt); 
  33.             } 
  34.         </script> 
  35.     </head> 
  36.     <body> 
  37.         <input type="button" value=" " onclick="createElementTest()"/> 
  38.         <input type="button" value=" " onclick="removeChildTest()"/> 
  39.         <input type="button" value=" " onclick="replaceChildTest()"/> 
  40.     </body> 
  41. </html> 

 마지막 으로 우 리 는 한 노드 전에 다른 노드 를 삽입 할 수 있다.이것 이 바로 방법 insert Before () 의 역할 입 니 다.이 방법 도 두 가지 인자 가 있 습 니 다. 새 노드 와 어느 노드 에 꽂 기 전에.이 어 위의 예 를 들 어 우 리 는 첫 번 째 p 요소 전에 다른 p 요 소 를 삽입 하고 요소 의 텍스트 는 a new element 입 니 다.
코드 는 다음 과 같 습 니 다:

  
  
  
  
  1. var newNode = document.createElement("p"); 
  2. var newTxt = document.createTextNode("a new element"); 
  3. newNode.appendChild(newTxt); 
  4. var oldNode = document.body.getElementsByTagName("p")[0]; 
  5. var pNode = oldNode.parentNode; 
  6. pNode.insertBefore(newNode,oldNode); 

전체 코드 는 다음 과 같 습 니 다:
 

  
  
  
  
  1. <html> 
  2.     <head> 
  3.         <title>createElement() Demo</title> 
  4.         <script type="text/javascript"> 
  5.             function createElementTest() { 
  6.                 // : p  
  7.                 var oP = document.createElement("p"); 
  8.                 // :  
  9.                 var oTxt = document.createTextNode("A New Element"); 
  10.                 // : p  
  11.                 oP.appendChild(oTxt); 
  12.                 // : p body  
  13.                 document.body.appendChild(oP); 
  14.             } 
  15.  
  16.             function removeChildTest() { 
  17.                 // : p  
  18.                 var oP = document.body.getElementsByTagName("p").item(0); 
  19.                 // : p  
  20.                 var pNode = oP.parentNode; 
  21.                 // :  
  22.                 pNode.removeChild(oP); 
  23.             } 
  24.             function replaceChildTest() { 
  25.                 // :  
  26.                 var newTxt = document.createTextNode("Hello,World!"); 
  27.                 // :  
  28.                 var oldTxt = document.body.getElementsByTagName("p").item(0).childNodes.item(0); 
  29.                 // :  
  30.                 var oP = document.body.getElementsByTagName("p").item(0); 
  31.                 // :  
  32.                 oP.replaceChild(newTxt,oldTxt); 
  33.             } 
  34.             function insertBeforeTest() { 
  35.                 var newNode = document.createElement("p"); 
  36.                 var newTxt = document.createTextNode("a new element"); 
  37.                 newNode.appendChild(newTxt); 
  38.                 var oldNode = document.body.getElementsByTagName("p")[0]; 
  39.                 var pNode = oldNode.parentNode; 
  40.                 pNode.insertBefore(newNode,oldNode); 
  41.             } 
  42.         </script> 
  43.     </head> 
  44.     <body> 
  45.         <input type="button" value=" " onclick="createElementTest()"/> 
  46.         <input type="button" value=" " onclick="removeChildTest()"/> 
  47.         <input type="button" value=" " onclick="replaceChildTest()"/> 
  48.         <input type="button" value=" " onclick="insertBeforeTest()"/> 
  49.     </body> 
  50. </html> 

 
참고서 목록:
 
《 자 바스 크 립 트 고급 프로 그래 밍 》
 
 
 
 

좋은 웹페이지 즐겨찾기