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

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

關于javascript進階篇9-11的個問題

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

? ? ? ? var x=g.nextSibling;

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

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

? ? ? ? }

? ? ? ? return x;

? ? }


? ? var x=document.getElementById("e");

? ? 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>



  1. 為何將while中的x=x.nextSibling中第二 個x改成其他字母,網頁崩潰無法運行;

  2. <li>標簽不是元素節點嗎?如果是,while循環條件中定義的是!=1,意思難道不是x不是元素節點時x=x.nextSibling?那么既然<li>是元素節點,為什么自后還是輸出了<li>的Name;

  3. var x=document.getElementById("e")中的X是什么;?var y=get_previousSibling(x)中的X是什么,二者給你return X中的X,三者之間有什么聯系。

????以上三個問題望大神解答,困擾了一晚上,就差砸電腦了。萬分感謝?。。。。。。。?br />

正在回答

2 回答

1、可以改,但是要將這個函數里的x全部都改,如下改成a

function?get_previousSibling(g){
????var?a=g.nextSibling;
????while?(a?&&?a.nodeType!=1){
????????a=a.nextSibling;
????}
????return?a;
}

2、li是元素節點,當x不是元素節點并且x存在,說明x是其他節點,例如文本節點,因此x.nextSibling再次判斷,直到是元素節點為止

3、第一個x是定義在全局作用域的變量;第二個x是函數調用時傳到函數內部的參數,這里相當于將第一個定義的x傳進函數里,代替函數里的g;第三個x,函數內部return x,是指函數局部作用域下的變量x,獲取變量優先局部作用域,局部作用域沒有再去全局作用域查找

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

自律讓人自由4008941 提問者

非常感謝!!!
2016-11-12 回復 有任何疑惑可以回復我~

while那塊這么理解,while循環執行一塊代碼,直到條件不再被滿足,那些不是元素節點的滿足條件直接返回。

那些不滿足條件的也就是元素節點的,將執行訪問兄弟節點的語句。——本人菜鳥,以上自己見解

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

自律讓人自由4008941 提問者

非常感謝?。?!我的理解也是跟你一樣~~
2016-11-20 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

關于javascript進階篇9-11的個問題

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

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

幫助反饋 APP下載

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

公眾號

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