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

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

while (x && x.nodeType!=1)這個條件直接放個x判斷存在?

這個例子while (x && x.nodeType!=1)這個條件直接放個x判斷存在?按照常理應該寫x!=null,這里直接放個x什么意思?

<!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_nextSibling(n){

? ? ? ? var x=n.nextSibling;

? ? ? ? while (x && x.nodeType!=1){

? ? ? ? ? ? x=x.nextSibling;

? ? ? ? }

? ? ? ? return x;

? ? }


? ? function get_previousSibling(n){

? ? ? ? var x=n.previousSibling;

? ? ? ? while(x&&x.nodeType!=1){

? ? ? ? ? ? x=x.previousSibling;

? ? ? ? }

? ? ? ? return x;

? ? }

? ? var x=document.getElementsByTagName("li")[0];

? ? document.write(x.nodeName);

? ? document.write(" = ");

? ? document.write(x.innerHTML);

? ??

? ? var y=get_nextSibling(x);

? ??

? ? if(y!=null){

? ? ? ? document.write("<br />nextsibling: ");

? ? ? ? document.write(y.nodeName);

? ? ? ? document.write(" = ");

? ? ? ? document.write(y.innerHTML);

? ? }else{

? ? ? document.write("<br>已經是最后一個節點"); ? ? ?

? ? }

? ??

? ? var z=get_previousSibling(y);

? ? if(y!=null){

? ? ? ? document.write("<br/>privioussibling");

? ? ? ? document.write(z.nodeName);

? ? ? ? document.write(" = ");

? ? ? ? document.write(z.innerHTML);

? ? }


</script>

</body>

</html>


正在回答

5 回答

x=x.nextSibling;??????????
??//循環體??滿足上面的條件就一直循環x=x.nextSinling重復把x的下一兄弟給x,
??直到找了nodeType=1的,然后不滿足循環條件了之后?return?x


1 回復 有任何疑惑可以回復我~
while?(x?&&?x.nodeType!=1){????
?//while循環判斷x存在嗎?好的a=1的話返回b,b是x的nodeType看看他是不是等于=1


0 回復 有任何疑惑可以回復我~
//首先把x的.nextSibling給x


0 回復 有任何疑惑可以回復我~
var?x=n.nextSibling;????????????//首先把x的.nextSibling給x
while?(x?&&?x.nodeType!=1){?????//while循環判斷x存在嗎?好的a=1的話返回b,b是x的nodeType看看他是不是等于=1
x=x.nextSibling;????????????//循環體??滿足上面的條件就一直循環x=x.nextSinling重復把x的下一兄弟給x,直到找了nodeType=1的,然后不滿足循環條件了之后?跳出while循環?return?x


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

var x=n.nextSibling ?? while (x && x.nodeType!=1)? 如果n.nextSibling返回null?? x=false?? 反之 x=true


3 回復 有任何疑惑可以回復我~
#1

uwenhao2008

這里你能講詳細一點嗎?還是不理解你的意思。謝謝 while (x && x.nodeType!=1)這個條件到底是判斷什么的?題中寫的 是判斷節點nodeType是否為1, 如是為元素節點,跳過。 但是這里的我理解的不是這個意思啊
2016-01-14 回復 有任何疑惑可以回復我~
#2

qq_風_54 回復 uwenhao2008

這個條件是且的關系,即是說當x為true同時nodeType!=1都成立時執行花括號里面的內容。x什么時候為true呢?n.nextSibling返回null時,為false。就是說n.nextSibling返回不為null。當n有兄弟節點的時候返回值不為null。x在這里就是為了確保n有兄弟節點。x.nodeType!=1很簡單了,不為元素節點就成立,為元素節點時就不執行,跳過。
2016-02-02 回復 有任何疑惑可以回復我~
#3

Cooling_ZS 回復 qq_風_54

謝謝謝謝!明白了!
2016-02-15 回復 有任何疑惑可以回復我~
#4

ikonorion 回復 qq_風_54

謝謝大神!
2016-05-13 回復 有任何疑惑可以回復我~
查看1條回復

舉報

0/150
提交
取消

while (x && x.nodeType!=1)這個條件直接放個x判斷存在?

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

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

幫助反饋 APP下載

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

公眾號

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