課程
/前端開發
/JavaScript
/JavaScript進階篇
一直報錯說,null.nodeName不存在,但是x=null時不執行此函數呀?。。?!迷惑了
2016-10-28
源自:JavaScript進階篇 9-11
正在回答
<!DOCTYPE HTML><html> ? ?<head> ? ? ? ?<meta charset="utf-8"/> ? ? ? ?<title>Subling兄弟節點</title> ? ?</head> ? ?<body> ? ? ? ?<ul> ? ? ? ? ? ?<li>JS</li> ? ? ? ? ? ?<li>HTML</li> ? ? ? ? ? ?<li>CSS</li> ? ? ? ? ? ?<li>Jquery</li> ? ? ? ?</ul> ? ? ? ?<ul> ? ? ? ? ? ?<li>C-N</li> ? ? ? ? ? ?<li>PS</li> ? ? ? ? ? ?<li>WEB</li> ? ? ? ? ? ?<li>GO</li> ? ? ? ?</ul> ? ? ? ?<script type="text/javascript"> ? ? ? ? ? ?function get_nextSibling(n) ? ? ? ? ? ?{ ? ? ? ? ? ? ? ?var x= n.nextSibling; ? ? ? ? ? ? ? ?while(x&& x.nodeType!=1)//while(x)說明x不是一個空,得到true,取后面的值,詳見疑難解答5 ? ? ? ? ? ? ? ?{ ? ? ? ? ? ? ? ? ? ?x= x.nextSibling;//while循環,如果不是一個元素,則下一個,直到出現一個元素 ? ? ? ? ? ? ? ?} ? ? ? ? ? ? ? ?return x;//給調用函數的傳回一個參數。 ? ? ? ? ? ?} ? ? ? ? ? ?function get_previousSibling(n) ? ? ? ? ? ?{ ? ? ? ? ? ? ? ?var x= n.previousSibling; ? ? ? ? ? ? ? ?while(x&& x.nodeType!=1) ? ? ? ? ? ? ? ?{ ? ? ? ? ? ? ? ? ? ?x= x.previousSibling;//while循環,如果不是一個元素,則下一個,直到出現一個元素 ? ? ? ? ? ? ? ?} ? ? ? ? ? ? ? ?return x;//給調用函數的傳回一個參數。 ? ? ? ? ? ?} ? ? ? ? ? ?var A=document.getElementsByTagName("li")[0]; ? ? ? ? ? // document.write(A.nodeName+"="+ A.nodeValue+"<br/>");//元素節點的nodeValue是空的 ? ? ? ? ? ?document.write(A.nodeName+"="+ A.innerHTML+"<br/>"); ? ? ? ? ? ?var y=get_nextSibling(A); ? ? ? ? ? ?if(y!=null) ? ? ? ? ? ?{ ? ? ? ? ? ? ? document.write(y.nodeName+"="+ y.innerHTML+"<br/>"); ? ? ? ? ? ?} ? ? ? ? ? ?else ? ? ? ? ? ?{ ? ? ? ? ? ? ? ?document.write("是最后一個節點"); ? ? ? ? ? ?} ? ? ? ? ? ?var z=get_previousSibling(A); ? ? ? ? ? ?if(z!=null)//if(y)說明y不是一個空函數,得到true,取后面的值 ? ? ? ? ? ?{ ? ? ? ? ? ? ? ?document.write(z.nodeName+"="+ z.innerHTML+"<br/>"); ? ? ? ? ? ?} ? ? ? ? ? ?else ? ? ? ? ? ?{ ? ? ? ? ? ? ? ?document.write("是最后一個節點"); ? ? ? ? ? ?} ? ? ? ?</script> ? ?</body></html>
舉報
本課程從如何插入JS代碼開始,帶您進入網頁動態交互世界
2 回答怎么解決?
1 回答代碼不對,怎么解決?
3 回答請問這個怎么解決?
3 回答求解 這又什么問題 怎么解決
1 回答這個有 bug 怎么解決
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2016-10-28
<!DOCTYPE HTML>
<html>
? ?<head>
? ? ? ?<meta charset="utf-8"/>
? ? ? ?<title>Subling兄弟節點</title>
? ?</head>
? ?<body>
? ? ? ?<ul>
? ? ? ? ? ?<li>JS</li>
? ? ? ? ? ?<li>HTML</li>
? ? ? ? ? ?<li>CSS</li>
? ? ? ? ? ?<li>Jquery</li>
? ? ? ?</ul>
? ? ? ?<ul>
? ? ? ? ? ?<li>C-N</li>
? ? ? ? ? ?<li>PS</li>
? ? ? ? ? ?<li>WEB</li>
? ? ? ? ? ?<li>GO</li>
? ? ? ?</ul>
? ? ? ?<script type="text/javascript">
? ? ? ? ? ?function get_nextSibling(n)
? ? ? ? ? ?{
? ? ? ? ? ? ? ?var x= n.nextSibling;
? ? ? ? ? ? ? ?while(x&& x.nodeType!=1)//while(x)說明x不是一個空,得到true,取后面的值,詳見疑難解答5
? ? ? ? ? ? ? ?{
? ? ? ? ? ? ? ? ? ?x= x.nextSibling;//while循環,如果不是一個元素,則下一個,直到出現一個元素
? ? ? ? ? ? ? ?}
? ? ? ? ? ? ? ?return x;//給調用函數的傳回一個參數。
? ? ? ? ? ?}
? ? ? ? ? ?function get_previousSibling(n)
? ? ? ? ? ?{
? ? ? ? ? ? ? ?var x= n.previousSibling;
? ? ? ? ? ? ? ?while(x&& x.nodeType!=1)
? ? ? ? ? ? ? ?{
? ? ? ? ? ? ? ? ? ?x= x.previousSibling;//while循環,如果不是一個元素,則下一個,直到出現一個元素
? ? ? ? ? ? ? ?}
? ? ? ? ? ? ? ?return x;//給調用函數的傳回一個參數。
? ? ? ? ? ?}
? ? ? ? ? ?var A=document.getElementsByTagName("li")[0];
? ? ? ? ? // document.write(A.nodeName+"="+ A.nodeValue+"<br/>");//元素節點的nodeValue是空的
? ? ? ? ? ?document.write(A.nodeName+"="+ A.innerHTML+"<br/>");
? ? ? ? ? ?var y=get_nextSibling(A);
? ? ? ? ? ?if(y!=null)
? ? ? ? ? ?{
? ? ? ? ? ? ? document.write(y.nodeName+"="+ y.innerHTML+"<br/>");
? ? ? ? ? ?}
? ? ? ? ? ?else
? ? ? ? ? ?{
? ? ? ? ? ? ? ?document.write("是最后一個節點");
? ? ? ? ? ?}
? ? ? ? ? ?var z=get_previousSibling(A);
? ? ? ? ? ?if(z!=null)//if(y)說明y不是一個空函數,得到true,取后面的值
? ? ? ? ? ?{
? ? ? ? ? ? ? ?document.write(z.nodeName+"="+ z.innerHTML+"<br/>");
? ? ? ? ? ?}
? ? ? ? ? ?else
? ? ? ? ? ?{
? ? ? ? ? ? ? ?document.write("是最后一個節點");
? ? ? ? ? ?}
? ? ? ?</script>
? ?</body>
</html>