어떻게 자바 스크립트 DOM 작업? 이해이 기사를 읽기

DOM을 , 문서 객체 모델은 인 W3C -recommended 처리 확장 마크 업 언어 표준 프로그래밍 인터페이스. 그것은 플랫폼 독립적 인 언어 응용 프로그램 인터페이스 (API), 동적으로 프로그램과 스크립트에 액세스 할 수 있습니다 , 내용, 구조 및 업데이트 www가 문서의 스타일을, DOM을의 중요성은 우리가했다고 말할 것도 없다 에 대한 자세한 내용 자바 스크립트 에서 DOM의 작동 방법.

DOM 증가

DOM 조작 하여 노드 증가 참조하면, 두 부분으로 나뉘어 : 노드 생성삽입 노드 .

노드 만들기

노드 일반적으로 작성하는 데 사용되는 API의 있는 방법 :

1.  document.createElement는 () : 지정된 작성 HTML의 요소를

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

3.  document.createDocumentFrame () : 문서 조각을 만들기

4.  document.createAttribute () : 노드의 속성을 만들

제  Node.cloneNode () : 클론 노드

삽입 노드 ###

에 공통 노드 API의 방법은 다음과 같습니다

1.  Node.appendChild () : 새로운 노드를 추가

2.  Node.insertBefore () : 삽입 새 노드

<div ID = "div1"> <p의 ID = "P1"은> 이 단락 인 </ p> <p의 ID = "P2"> 이 다른 문단 </ p> </ div>

<script> VAR 파라 = document.createElement ( "P"); VAR 노드 = document.createTextNode ( "이것은 새로운 단락이다.");

para.appendChild (노드);

VAR 요소 document.getElementById를 ( "div1을") =;

element.appendChild (파라); </ script>

예 설명 :

이 코드는 새로운 생성 <p> 요소를 :

 VAR의  파라 = 문서 .createElement ( "P" );

를 들어 <P> 추가 텍스트 요소, 먼저 텍스트 노드를 작성해야합니다. 이 코드는 텍스트 노드를 만듭니다

VAR  노드 = 문서 .createTextNode ( "이것은 새 단락입니다." );

그런 다음에이 <P> 추가] 텍스트 노드 요소 :

para.appendChild ( 노드 );

마지막으로, 기존의 요소에 새로운 요소를 추가해야합니다. 이 코드는 기존의 요소를 찾을 수 있습니다 :

VAR의  요소 = 문서 .getElementById ( "div1" );

이 코드는 기존의 요소에 새로운 요소를 추가 :

element.appendChild ( 파라 );

document.createAttribute ()

document.createAttribute () 메서드를 만들고 새로운 속성 노드를 반환합니다. 이 속성을 만들 오면하지만이 방법은 매우 일반적인 아니라, 일반적으로 사용 node.setAttribute을 () .  

<div의 ID = "div1" >

<P ID = "P1"은 > 이 단락 인 </ p>

<P ID = "P2"는 > 이 다른 문단 </ p>

</ DIV>

VAR  노드 = document.getElementById를 ( 'DIV1' ); var에  이 newAttr = document.createAttribute ( '제목' );   // 새로운 title 속성을 만들;

 

= .NodeValue 이렇게이 newAttr '헬로 월드를!' ;   값 // title 속성은 다음과 같습니다 안녕하세요 세계!

node.setAttributeNode (ATTR는) // 노드에 대응하는 요소에 적용된

关于 node.cloneNode ()

node.cloneNode은 (깊이) 방법은 노드의 복사본을 반환 깊은 옵션이 표시 여부는 경우, 사용하는 복제의 깊이 사실 모든 자손 노드, 노드도 복제 될 것이다, 그렇지 않으면만을 복제 노드 자체.   

<div id="div1">

<p id="p1">这是一个段落</p>

<p id="p2">这是另一个段落</p>

</div>

var node = document.getElementById('div1');var cloneNode = node.cloneNode(true); //克隆div1整个节点;

 

cloneNode.id = "div2"; //修改克隆的节点id名称为div2;

document.body.appendChild(cloneNode); //在网页中追加克隆的节点;

DOM的删除

DOM节点的删除主要APInode.removeChild();可以使用parentNode.removeChild(child)删除指定父节点parentNode的一个子节点child,并返回被删除的节点。

注意事项:这个方法是要在被删除的节点的父节点上调用的,而不是在被删除节点上调用的,如果参数节点不是当前节点的子节点,removeChild 方法将报错。

<div id="div1"><p id="p1">这是一个段落。</p><p id="p2">这是另一个段落。</p></div>

<script>var parent=document.getElementById("div1");var child=document.getElementById("p1");

parent.removeChild(child);</script>

例子解释:

这个 HTML 文档含有拥有两个子节点(两个<p>元素)的 <div> 元素:

<div id="div1"><p id="p1">这是一个段落。</p><p id="p2">这是另一个段落。</p></div>

找到 id="div1"的元素:

var parent=document.getElementById("div1");

找到id="p1"  <p> 元素:

var child=document.getElementById("p1");

从父元素中删除子元素:

parent.removeChild(child);

DOM的修改

修改节点常用的API方法主要有:

1. appendChild():末尾追加一个新节点

2. insertBefore():插入一个新节点

3. replaceChild():替换节点

注意事项:以上几个方法都是操作的某个节点的子节点,也就是说,要使用这几个方法必须先取得父节点。另外并不是所有节点都有子节点,如果在不支持子节点的节点上,调用了这些方法,将会导致错误。

DOM的查找

DOM节点中的查主要包括:查找元素节点查找

查找元素

1. getElementById() --- 通过ID访问;

2. getElementsByClassName() --- 通过类名访问;

3. getElementsByTagName() --- 通过标签名称访问;

4. querySelector() --- 通过CSS选择器访问(单个);

5. querySelectorAll() --- 通过CSS选择器访问 (所有);

关于这一节的内容,可以访问上一篇文章:JavaScript-DOM访问方式

节点查找

所有的节点都有这些属性,都是可以用于访问相关的node节点:

1. Node.childNodes: 访问一个单元素下所有的直接子节点元素,可以是一个可循环的类数组对象。该节点集合可以保护不同的类型的子节点(比如text节点或其他元素节点)。

2. Node.firstChild: childNodes数组的第一个项(Element.childNodes[0])是同样的效果,仅仅是快捷方式。

3. Node.lastChild: childNodes数组的最后一个项(Element.childNodes[Element.childNodes.length-1])是同样的效果,仅仅是快捷方式。

4. Node.parentNode: 访问当前节点的父节点,父节点只能有一个,祖节点可以用Node.parentNode.parentNode 的形式来访问。

5. Node.nextSibling: 访问DOM树上与当前节点同级别的下一个节点。

6. Node.previousSibling: 访问DOM树上与当前节点同级别的上一个节点。

总结

 



DOM操作在JavaScript还是很重要的,简单点说,所有的交互操作都是基于DOM来操作的。而DOM中的操作,最为熟悉的就是对DOM的增、删、改、查。今天的内容也就围绕着这几个方面展开学习。


추천

출처blog.51cto.com/14601734/2462410