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

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

求大神幫我解釋這幾行代碼的意思。n代表什么。

求大神幫我解釋這幾行代碼的意思。n代表什么。

?function get_nextSibling(n){??????? var x=n.nextSibling;??????? while (x && x.nodeType!=1){??????????? x=x.nextSibling;??????? }??????? return x;??? }
查看完整描述

3 回答

已采納
?
習慣受傷

TA貢獻885條經驗 獲得超1144個贊

<!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;
????????}
????????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>已經是最后一個節點");??????
????????}
????</script>
</body>
</html>

n就是頁面中的某一個元素,在Dom解析中叫做節點(Node)。

解析:

1、var x=n.nextSibling;

nextSibling 屬性返回指定節點之后緊跟的節點,在相同的樹層級中。被返回的節點以 Node 對象返回。

注釋:如果沒有 nextSibling 節點,則返回值為 null。

2、while (x && x.nodeType!=1){

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

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

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

所以這一句表示:如果n元素后還有緊跟的元素,并且是元素節點的時候,繼續往下找。

3、return x;

直到找不到下一個元素節點的時候,返回x。

查看完整回答
1 反對 回復 2017-03-11
?
心有猛虎_細嗅薔薇

TA貢獻119條經驗 獲得超250個贊

function?get_nextSibling(n){????????????????//定義一個函數,返回列表項的下一個同胞,傳入的參數n是li節點
????????var?x=n.nextSibling;????????????????//獲取了n的nextSibling賦值給x
????????while?(x?&&?x.nodeType!=1){?????????//判斷x是不是null.并且while循環中找到第一個不是元素節點
????????????x=x.nextSibling;????????????????//注意:元素中的空格被視作文本,而文本被視作文本節點
????????}
????????return?x;????????????????????????????//返回傳入參數n之后緊跟的節點
????}
(ˉ▽ˉ;)... ...


查看完整回答
1 反對 回復 2017-03-11
?
五道口

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

返回下一個節點,已經有人給出詳細答案了,我就不多說了

查看完整回答
反對 回復 2017-03-12
  • 3 回答
  • 0 關注
  • 2071 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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