亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

對訪問節點做一個總結

下面通過實例對父,兄,子,第一子,最后子的幾個訪問方式做了一個全面的概括,通過下面實例更清楚的了解到各節點之間的關系,下面的功能就是無障礙式訪問不同父節點之間的元素,通俗講就是一顆樹跳到了另一顆樹,具體實現的算法:先看這個?n=n.parentNode.nextSibling.nextSibling.firstChild.nextSibling;是不是很眼暈?其實就是從這個列表跳進了另一個列表,這只是直接的算法,用代碼的算法是:到達臨界點(注)時,返回節點,遍歷兄弟節點(同級進入UL元素節點的第一子節點,繼續遍歷是否要找的LI元素節點,找到后輸出信息,到此結束。

下面是代碼部分;

<!DOCTYPE HTML>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<title>DOM對象--節點訪問之總結</title>

</head>

<body>

<ul id="u1"> ??

<li id="a">javascript</li> ??

<li id="b">jquery</li> ??

<li id="c">html</li> ??

</ul> ??

<ul id="u2"> ??

<li id="d">css3</li> ??

<li id="e">php</li> ??

<li id="f">java</li> ??

</ul>

<input id="id_up" type="button" value="上一個" onclick="get_previousSibling()">

<input id="id_down" type="button" value="下一個" onclick="get_nextSibling()">

<p id="id_p"></p>

<script type="text/javascript">

var n=document.getElementById("a");

var up=document.getElementById("id_up");

var down=document.getElementById("id_down");

var p=document.getElementById("id_p");

function get_nextSibling(){

do{

n=n.nextSibling;

if(!n.nextSibling){// 臨界點切換下一組

n=n.parentNode;// 返回父節點

do{

n=n.nextSibling;

if(n.nodeName=="UL"){//同級節點查找

? ?n=n.firstChild;//進入子節點

}

}while(n.nodeName!="LI")//查找LI標簽

// n=n.parentNode.nextSibling.nextSibling.firstChild.nextSibling;

}

}while(n.nodeType!=1)//不是元素節點繼續遍歷

p.innerHTML=n.innerHTML; //輸出信息

}

function get_previousSibling(){

do{

n=n.previousSibling;

if(!n.previousSibling){// 臨界點切換上一組

n=n.parentNode;// 返回父節點

do{

n=n.previousSibling;

if(n.nodeName=="UL"){//同級節點查找

n=n.lastChild;// 進入子節點

}

}while(n.nodeName!="LI")//查找LI標簽

}

}while(n.nodeType!=1)

p.innerHTML=n.innerHTML;

}

</script>

</body>

</html>

注:臨界點指本節點后無有效節點

正在回答

1 回答

0000


0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
JavaScript進階篇
  • 參與學習       468832    人
  • 解答問題       22582    個

本課程從如何插入JS代碼開始,帶您進入網頁動態交互世界

進入課程

對訪問節點做一個總結

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號