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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

javascript進階篇 一個循環 不理解 求解答

javascript進階篇 一個循環 不理解 求解答

<!DOCTYPE HTML><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>nextSibling</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> ??<script type="text/javascript">? ? function get_previousSibling(n){ ? ? ??? ? ? ? var x=n.previousSibling;? ? ? ? while (x && x.nodeType!=1){ ? ? ? ? //這個循環我怎么理解是 條件判斷 不能等于1(元素),如果等于1就跳過,但是答案正好相反 ? 迷不過來這個 ?哎,求解答? ? ? ? ? ???x=x.previousSibling; ? ?? ? ? ? }? ? ? ? return x;? ? }? ? var x=document.getElementsByTagName("li")[1];? ? document.write(x.nodeName);? ? document.write(" = ");? ? document.write(x.innerHTML);? ??? ? var y=get_previousSibling(x);? ????? if(y!=null){ ? ? ?? ? ? ? document.write("<br />nextsibling: ");? ? ? ? document.write(y.nodeName);? ? ? ? document.write(" = ");? ? ? ? document.write(y.innerHTML);? ? }else{? ? ? document.write("<br>已經是最后一個節點"); ? ? ?? ? }</script></body></html>
查看完整描述

2 回答

已采納
?
Perona

TA貢獻355條經驗 獲得超403個贊

首先要明白nodeType屬性。

nodeType 屬性返回以數字值返回指定節點的節點類型。

如果節點是元素節點,則 nodeType 屬性將返回 1。

如果節點是屬性節點,則 nodeType 屬性將返回 2。

那這個條件是什么意思呢?即存在x(n的兄弟節點)并且x(n的兄弟節點)類型不是元素節點。

x ? ? ? ?&& ? ? x.nodeType ? ? != ? ? ? ? ? ? 1

?↓ ? ? ? ?↓ ? ? ? ? ? ?↓ ? ? ? ? ? ? ? ? ? ? ↓ ? ? ? ? ? ? ? ?↓?

存在x ?并且 ? ? x節點類型 ? ? ? 不是 ? ? ? ?元素節點

查看完整回答
反對 回復 2015-06-02
  • 程序愛好者11
    程序愛好者11
    您好,就是說條件是 【x存在并且不是元素節點】,也是就是說等于1是元素節點就停止,滿足不等于1就循環啊,怎么感覺和標準相反呢
  • Perona
    Perona
    跟你解釋一下這個get_previousSibling(n)函數吧。var x=n.nextSibling;是先把n的下一個節點賦值給x。那么while循環就是判斷如果x存在并且x的節點類型不是元素節點,那么就把x的下一個節點重新賦值給x,即這句話x=x.nextSibling;。本身這個循環體是不是就是要找到元素節點。
  • 程序愛好者11
    程序愛好者11
    非常感謝!
點擊展開后面1
?
慕萊塢0150426

TA貢獻1條經驗 獲得超0個贊

把感嘆號去掉看行嗎

查看完整回答
反對 回復 2015-06-02
  • 2 回答
  • 0 關注
  • 1601 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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