第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請及時(shí)綁定郵箱和手機(jī)立即綁定

我把ul中第一個(gè)li和第二個(gè)li之間的空白去掉了把&&nodeType!==1也去掉了為什么打印不出來

<!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">1</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=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+"<br ?/><br ?/>");

? ? }else{

? ? ? document.write("<br>已經(jīng)是最后一個(gè)節(jié)點(diǎn)"+"<br /><br ?/>"); ? ? ?

? ? }

//以下是本題題解

? ? function get_previousSibling(n)

? ? {

? ? ? ? var z=n.previousSibling;

? ? ? ? while (z&&z.nodeType!=1)

? ? ? ? {

? ? ? ? ? ? z=z.previousSibling;

? ? ? ? }

? ? ? ? return z;

? ? }

? ?var z=document.getElementsByTagName("li")[4];

? ? ? ?document.write(z.nodeName+" = "+z.innerHTML);

? ?var d=get_previousSibling(z);

? ? if(d!=null)

? ? {

? ? document.write("<br ?/>previoussibling:"+d.nodeName+" = "+d.innerHTML);

? ? }

? ? else {

? ? ? ? document.write("<br />這是第一個(gè)節(jié)點(diǎn),前面沒有節(jié)點(diǎn)了。");

? ? }

</script>

</body>

</html>


正在回答

1 回答

function?get_nextSibling(n){
????????var?x=n.nextSibling;
????????while?(x?){
????????????x=x.nextSibling;
????????}
????????return?x;
????}

截取了你的這一段代碼,問題就出在這 while 循環(huán),這個(gè)循環(huán)的意思是,只要 x 不為 null,就一直循環(huán)下去,那么理所當(dāng)然,只有當(dāng) x 為 null 時(shí)才跳出循環(huán),這個(gè)時(shí)候,x 的值為 null,自然就打印不出來。

你把空白節(jié)點(diǎn)去掉了,想打印下一個(gè),可以不用 while 循環(huán),直接?nextSibling。或者保留原本的循環(huán)條件不變,就能打印出來了。

補(bǔ)充一下:空白節(jié)點(diǎn)的值并非 null,是有值的,是一個(gè)實(shí)際存在的節(jié)點(diǎn)。只有當(dāng)獲取不到符合條件的節(jié)點(diǎn)時(shí),才會(huì)返回 null 值。

0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

哎_呦_喂___ 提問者

額,謝啦。。之前沒太看懂
2016-10-13 回復(fù) 有任何疑惑可以回復(fù)我~

舉報(bào)

0/150
提交
取消

我把ul中第一個(gè)li和第二個(gè)li之間的空白去掉了把&&nodeType!==1也去掉了為什么打印不出來

我要回答 關(guān)注問題
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)