關(guān)于while不明白的同學(xué)可以看看!
看好多同學(xué)有疑問(wèn)。解析下這個(gè)代碼:
while (x && x.nodeType!=1){
? ? ? ? ? ? x=x.nextSibling;
? ? ? ? }
? ? ? ? return x;
? ? }
首先,這個(gè)判定是在函數(shù)內(nèi)部。函數(shù)的參數(shù)是n,n的值是在定義y的時(shí)候傳給它的。即n=document.getElementsByTagName("li")[0]也就是所有l(wèi)i元素的第一個(gè)li。 傳進(jìn)來(lái)之后呢? 通過(guò)函數(shù)進(jìn)行處理之后賦值給y。 函數(shù)怎么處理的呢?首先n被傳入,函數(shù)內(nèi)部定義x=n.nextSibling。這里就是第一個(gè)li元素后面的元素賦值給x。然后開始判斷x是否等于1。不等于1呢?x=x.nextSibling; 不等于1就意味著后面的換行符被當(dāng)作空白的節(jié)點(diǎn)那么這個(gè)節(jié)點(diǎn)后面的節(jié)點(diǎn)就是我們想要的。所以x=x.nextSibling,就是自身后面的節(jié)點(diǎn)賦值給自己。此時(shí)x就是這個(gè)空節(jié)點(diǎn)后面的兄弟節(jié)點(diǎn)。也就是第二個(gè)li元素。 如果等于1呢?x=n.nextSibling n是被傳入第一個(gè)li元素節(jié)點(diǎn)了,那么n.nextSibling就是第一個(gè)li后面的兄弟元素(第二個(gè)li元素),并賦值給自己,此刻x等于它自身后面的兄弟元素。
2015-09-26
此中的1表示什么意思啊?是表示判斷是否為空的意思嗎?
2015-09-24
如果連續(xù)兩個(gè)空白節(jié)點(diǎn)呢?那這個(gè)while就沒(méi)有效果了。有什么更好的判斷方法么?