>웹 프론트엔드 >프런트엔드 Q&A >자바스크립트에서 노드를 생성하는 방법은 무엇입니까?

자바스크립트에서 노드를 생성하는 방법은 무엇입니까?

青灯夜游
青灯夜游원래의
2021-10-13 17:00:1015052검색

JavaScript에서 노드를 생성하는 방법: 1. createElement() 메서드는 요소 노드를 생성할 수 있습니다. 2. createTextNode() 메서드는 텍스트 노드를 생성할 수 있습니다. 3. createAttribute() 메서드는 속성 노드를 생성할 수 있습니다.

자바스크립트에서 노드를 생성하는 방법은 무엇입니까?

이 튜토리얼의 운영 환경: Windows 7 시스템, JavaScript 버전 1.8.5, Dell G3 컴퓨터.

javascript에서 노드를 생성하는 방법

1.createElement() 메소드: 요소 노드 생성

문서 객체의 createElement() 메소드를 사용하여 지정된 라벨 이름을 기반으로 새 요소 노드를 생성합니다. 매개변수로 새로 생성된 요소에 대한 참조를 반환합니다. 사용법은 다음과 같습니다.

var element = document.getElement("tagName");

그 중 element는 새 요소의 참조를 나타내며 createElement()는 문서 객체의 태그 이름을 지정하는 데 사용되는 매개 변수가 하나만 있습니다. 생성된 요소입니다.

【예제 1】다음 코드는 현재 문서에 단락 기호 p를 생성하여 변수 p에 저장합니다. 이 변수는 요소 노드를 나타내기 때문에 nodeType 속성 값은 1이고 nodeName 속성 값은 p와 같습니다.

var p = document.createElement("p");  //创建段落元素
var info = "nodeName:" + p.nodeName;  //获取元素名称
info += ", nodeType:" + p.nodeType;  //获取元素类型,如果为1则表示元素节点
console.log(info);

createElement() 메서드를 사용하여 생성된 새 요소는 문서에 자동으로 추가되지 않습니다. 이 요소를 문서에 추가하려면appendChild(), insertBefore() 또는 replacementChild() 메서드도 사용해야 합니다.

【예제 2】 새로 생성된 p 요소를 body 요소에 추가하는 코드는 다음과 같습니다. 문서 트리에 요소가 추가되면 즉시 표시됩니다.

var p = document.createElement("p");  //创建段落元素
document.body.appendChild(p);  //增加段落元素到body元素下

2. createTextNode() 메서드: 텍스트 노드 만들기

문서 개체의 createTextNode() 메서드를 사용하여 텍스트 노드를 만듭니다. 사용법은 다음과 같습니다.

document.createTextNode(data)
  • 매개변수 데이터는 문자열을 나타냅니다.

예제

다음 예에서는 새 div 요소를 만들고 해당 클래스 값을 빨간색으로 설정한 다음 문서에 추가합니다.

var element = document.createElement("div");
element.className = "red";
document.body.appendChild(element);

DOM 작업 및 기타 이유로 인해 텍스트 노드에 텍스트가 포함되지 않거나 두 개의 텍스트 노드가 연속해서 나타날 수 있습니다. 이러한 상황을 피하기 위해 일반적으로 부모 요소에서 Normalize() 메서드를 호출하여 빈 텍스트 노드를 삭제하고 인접한 텍스트 노드를 병합합니다.

3.createAttribute() 메소드: 속성 노드 생성

문서 객체의 createAttribute() 메소드를 사용하여 속성 노드를 생성합니다.

document.createAttribute(name)

매개변수 이름은 새로 생성되는 이름을 나타냅니다. 생성된 속성입니다.

예제 1

다음 예에서는 이름이 align 및 value center인 속성 노드를 생성한 다음 b390322fe69e754cc2d7247050226b6d 레이블에 대해 속성 align을 설정하고 마지막으로 3가지 메서드를 사용하여 값을 읽습니다. 속성 정렬 .

<div id="box">document.createAttribute(name)</div>
<script>
    var element = document.getElementById("box");
    var attr = document.createAttribute("align");
    attr.value = "center";
    element.setAttributeNode(attr);
    console.log(element.attributes["align"].value);  //"center"
    console.log(element.getAttributeNode("align").value);  //"center"
    console.log(element.getAttribute("align"));  //"center"
</script>

속성 노드는 일반적으로 요소의 헤드 태그에 위치합니다. 요소의 속성 목록에는 요소 정보가 미리 로드되어 연관 배열에 저장됩니다. 예를 들어 다음 HTML 구조를 살펴보겠습니다.

<div id="div1" title="div"></div>

DOM이 로드되면 HTML div 요소를 나타내는 divElement 변수는 이러한 속성을 이름-값 쌍으로 검색하는 관련 컬렉션을 자동으로 생성합니다.

divElement.attributes = {
    id : "div1",
    class : "style1",
    lang : "en",
    title : "div"
}

기존 DOM에서는 img.src, a.href 등과 같은 요소를 통해 HTML 속성에 직접 액세스하는 데 일반적으로 도트 구문이 사용됩니다. 이 방법은 표준은 아니지만 모든 브라우저에서 지원됩니다.

예제 2

img 요소에는 src 속성이 있으며, 모든 이미지 개체에는 HTML src 속성과 연결된 src 스크립트 속성이 있습니다. 아래 두 가지 사용법은 서로 다른 브라우저에서 잘 작동합니다.

<img id="img1" src="" />
<script>
    var img = document.getElementById("img1");
    img.setAttribute("src", "http://www.w3.org");  //HTML 属性
    img.src = "http://www.w3.org";  //JavaScript 属性
</script>

유사한 것에는 onclick, 스타일, href 등이 포함됩니다. JavaScript 스크립트가 다양한 브라우저에서 잘 작동할 수 있도록 하려면 표준 사용법을 채택하는 것이 좋습니다. 많은 HTML 속성은 JavaScript로 매핑되지 않으므로 스크립트 속성을 통해 직접 읽고 쓸 수 없습니다.

【추천 학습: javascript 고급 튜토리얼

위 내용은 자바스크립트에서 노드를 생성하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.