課程
/前端開發
/JavaScript
/JavaScript進階篇
這樣不是變成x的下兩個節點了?
function get_nextSibling(n){
? ? ? ? var x=n.nextSibling;
? ? ? ? while (x && x.nodeType!=1){
? ? ? ? ? ? x=x.nextSibling;
? ? ? ? }
? ? ? ? return x;
? ? }
問題如題。。
2015-11-02
源自:JavaScript進階篇 9-11
正在回答
<script type="text/javascript">
? ? function get_nextSibling(n){
? ? document.write("n的值為:"+n.value);
? ? var x=document.getElementsByTagName("li")[0];
? ? document.write("x的值為:"+x.value+"<br/>"+x.nodeValue+"<br/>"+x.nodeName+"<br/>"+x.nodeType+"<br/>");
y=get_nextSibling(x);
</script>
qq_混沌肆虐_0 提問者
慕斯卡9402741
我的看法應該是兼容性問題吧,因為在谷歌和火狐下,空白的地方也算是一個節點,ie下空白則不會算是個節點,可以alert一下節點的個數看下
我是這么理解不知道對不對,你可以參考下:
? ? ? ? var x=n.nextSibling; ? //這條語句是當下面的while循環不成立時返回的給return的值。
? ? ? ? while (x && x.nodeType!=1){ ? ? //當循環while成立時,即兩個條件滿足(while?會循環到返回的nodeType=1才會停止,并給x賦停止前得到的值)
? ? ? ? ? ? x=x.nextSibling; ? ?//給x重新賦值(新值會覆蓋舊值),給return返回這個新的值。
? ? ? ? } ? ? ? ? ??
? ? ? ? return x; ?//所以這里返回的x的值取決于while循環是否成立;
舉報
本課程從如何插入JS代碼開始,帶您進入網頁動態交互世界
3 回答2-13中為什么要問兩次a b的賦值?A B的賦值不是應該一直不變嗎?
5 回答一直捋不順方法里對X的賦值,為什么要兩次賦值呢?在IE中不會變成下兩個節點么?
1 回答為什么同一個索引賦值兩次會出現undefined呢?
2 回答這兩種賦值方法有什么不同?
1 回答不太懂className!?
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2015-11-03
<script type="text/javascript">
? ? function get_nextSibling(n){
? ? document.write("n的值為:"+n.value);
? ? ? ? var x=n.nextSibling;
? ? ? ? while (x && x.nodeType!=1){
? ? ? ? ? ? x=x.nextSibling;
? ? ? ? }
? ? ? ? return x;
? ? }
? ? var x=document.getElementsByTagName("li")[0];
? ? document.write("x的值為:"+x.value+"<br/>"+x.nodeValue+"<br/>"+x.nodeName+"<br/>"+x.nodeType+"<br/>");
y=get_nextSibling(x);
</script>
2015-11-09
我的看法應該是兼容性問題吧,因為在谷歌和火狐下,空白的地方也算是一個節點,ie下空白則不會算是個節點,可以alert一下節點的個數看下
2015-11-03
我是這么理解不知道對不對,你可以參考下:
function get_nextSibling(n){
? ? ? ? var x=n.nextSibling; ? //這條語句是當下面的while循環不成立時返回的給return的值。
? ? ? ? while (x && x.nodeType!=1){ ? ? //當循環while成立時,即兩個條件滿足(while?會循環到返回的nodeType=1才會停止,并給x賦停止前得到的值)
? ? ? ? ? ? x=x.nextSibling; ? ?//給x重新賦值(新值會覆蓋舊值),給return返回這個新的值。
? ? ? ? } ? ? ? ? ??
? ? ? ? return x; ?//所以這里返回的x的值取決于while循環是否成立;
? ? }