형제자매
함수 nextSib(노드){
var tempLast = node.parentNode.lastChild;
//마지막 노드인지 판단하고, 그렇다면 null을 반환
If(노드 == tempLast)
null을 반환합니다.
var tempObj = node.nextSibling;
//요소 노드를 찾을 때까지 다음 형제 노드를 하나씩 검색합니다
While(tempObj.nodeType!=1 && tempObj.nextSibling!=null)
tempObj = tempObj.nextSibling;
//삼항 연산자, 요소 노드인 경우 노드 자체를 반환하고, 그렇지 않으면 null을 반환합니다
반환(tempObj.nodeType==1)?tempObj:null;
}
함수 prevSib(노드){
var tempFirst = node.parentNode.firstChild;
//첫 번째 노드인지 확인하고, 그렇다면 null을 반환합니다
If(노드 == tempFirst)
null을 반환합니다.
var tempObj = node.previousSibling;
//요소 노드를 찾을 때까지 이전 형제 노드를 하나씩 검색합니다
While(tempObj.nodeType!=1 && tempObj.previousSibling!=null)
tempObj = tempObj.previousSibling;
반환(tempObj.nodeType==1)?tempObj:null;
}
함수 myDOMIspector(){
var myItem = document.getElementById("myDearFood");
//다음 요소 형제 노드를 가져옵니다
var nextListItem = nextSib(myItem);
//이전 요소 형제 노드 가져오기
var preListItem = prevSib(myItem);
Alert("다음 항목:" ((nextListItem!=null)?nextListItem.firstChild.nodeValue:null) " 이전 항목:" ((preListItem!=null)?preListItem.firstChild.nodeValue:null) );
}
머리>
본문>
7. 노드 속성 설정
// 사진 가져오기
var imgDataBe = document.getElementsByTagName("img")[0];
//이미지의 제목 속성을 가져옵니다
imgDataBe.setAttribute("src","02.gif");
imgDataBe.setAttribute("title","人情波");
document.write(imgDataBe.getAttribute("title"));
document.write(imgDataBe.getAttribute("alt"));
document.write(imgDataBe.getAttribute("node-data"));
document.write(imgDataBe.getAttribute("node_data"));
}
머리>
본문>
setAttribute() 메소드를 사용하여 노드 속성 설정
>
<script><br />
window.onload = function() {<br />
var bkk = document.getElementById("new5");<br />
var clickbk = document.getElementById("qiehuan");<br />
clickbk.onclick = dsqiehuan;<br />
기능 dsqiehuan() {<br />
bkk.setAttribute("class", "xxx")<br />
}<br />
}<br />
>
>
.xxx{색상:#ddd}<br />
>
</머리><br />
<본문><br />
<div id="new5"><br />
555<br />
>
<em id="qiehuan">스위치<br />
</본문><br />
<br /><br />
<br />8.createElement()가 노드를 생성합니다<br />
<br /></script>
코드 복사
코드는 다음과 같습니다.
>
<script></script>
window.onload = function() {
var oP = document.createElement("p");
var oText = document.createTextNode("dom을 사용하여 노드 생성");
var oText1 = document.createTextNode("dom을 사용하여 노드 123 생성");
oP.appendChild(oText);
oP.appendChild(oText1);
document.body.appendChild(oP);
}
>
머리>
여기에 P가 있습니다. createElement()를 테스트해 보세요
본문>
9.removeChild는 노드를 제거합니다
코드 복사
코드는 다음과 같습니다.
>
<script><br />
window.onload = function() {<br />
var oP = document.getElementsByTagName("p")[0];<br />
oP.parentNode.removeChild(oP); // .removeChild("oP")가 아닌 .removeChild(oP)로 끝납니다<br />
}<br />
>
</머리><br />
<본문><br />
<p>여기에 P가 있습니다. createElement()를 테스트해 보세요<br />
</본문><br />
<br /><br />
</script>
10.insertBefore()는 특정 노드 앞에 노드를 삽입합니다
>
<script><br />
window.onload = function() {<br />
var oPold = document.getElementsByTagName("p")[0];<br />
var oPnew = document.createElement("p");<br />
var oText = document.createTextNode("새 노드")<br />
oPnew.appendChild(oText) ;<br />
oPold.parentNode.insertBefore(oPnew,oPold);//두 개의 매개변수를 받습니다. 하나는 새 매개변수이고 다른 하나는 이전 노드 매개변수입니다<br />
}<br />
>
</머리><br />
<본문><br />
<p>원래는 P<br />
</본문><br />
<br /><br />
<br />11. 특정 노드 뒤에 새 요소 삽입(2015년 1월 9일 추가) <br />
</script>
DOM에서 제공하는 메서드는 insertBefore()를 사용하여 대상 요소 앞에 새 요소를 추가하거나,appendchild() 메서드를 사용하여 상위 요소의 childNodes 끝에 새 요소를 추가할 수 있습니다(예: 주소 ).
실제로는 특정 요소 끝에 새 요소를 추가할 때 사용되는 경우가 많습니다. DOM 메소드에는 insertBefore() 메소드가 없지만 기존 지식을 활용하여 작성할 수 있습니다.
코드 아이디어는 다음과 같습니다
코드 복사
코드는 다음과 같습니다.
함수 insertAfter(newElement, targetElement) {
var oparent = targetElement.parentNode //대상 요소의 상위 요소 찾기
If (oparent.lastChild == targetElement) //대상이 마지막 요소인 경우
oparent.appendChild(newElement); //마지막 요소 뒤에 직접 추가
else //다음 요소의 상위 요소 노드 앞에 삽입
oparent.insertBefore(newElement, targetElement.nextSibling)
인스턴스: (요소 외부에 추가) 원본 인스턴스: 주소
코드 복사
코드는 다음과 같습니다.
>
머리>
& Lt; p ID = "대상" & lt;/p & gt;
코드 복사
코드는 다음과 같습니다.
childNodes
window.onload = function() {
var oPold = document.getElementsByTagName("p")[0];
var aColors = ["red","green","blue","magenta","yellow","chocolate","black","aquamarine","lime","fuchsia","brass","azure ","갈색","청동","딥핑크","앨리스블루","회색","구리","산호","장석","오렌지","난초","핑크","자두", "석영","보라색"];
var oFragment = document.createDocumentFragment(); //创建文档碎그림
for(var i=0;i
var oP = document.createElement("p");
var oText = document.createTextNode(aColors[i]);
oP.appendChild(oText);
oFragment.appendChild(oP); //将节点先添加到碎文中
}
//document.body.appendChild(oFragment); //最后一次性添加到页면
oPold.parentNode.insertBefore(oFragment,oPold);//结합삽입Before使文档碎文添加到节点之前
}
머리>
这里本来有个P
본문>