JS中nodetype跟nodeType有什么不同嗎?
<!DOCTYPE?html> <html> <head> ??<meta?charset="UTF-8"> ??<meta?name="viewport"?content="width=device-width,?initial-scale=1.0"> ??<meta?http-equiv="X-UA-Compatible"?content="ie=edge"> ??<title>Document</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?/>已經(jīng)是最后一個(gè)節(jié)點(diǎn)'); ????} ??//get_previousSibling ??function?get_previousSibling(n)?{ ????var?m=n.previousSibling; ????while?(m?&&?m.nodeType!=1)?{ ??????m=m.previousSibling; ????} ????return?m ??} ????var?m=document.getElementById('b'); ????document.write('<br?/>'+m.nodeName); ????document.write('?=?'); ????document.write(m.innerHTML); ????var?h=get_previousSibling(m); ????if?(h!=null)?{ ??????document.write('<br?/>previousSibling:'); ??????document.write(h.nodeName); ??????document.write('?=?'); ??????document.write(h.innerHTML); ????} ????else?{ ??????document.write('<br?/>已經(jīng)是最前的一個(gè)節(jié)點(diǎn)'); ????} ??</script> </body> </html>
nodetype跟nodeType有什么不同嗎?
在這代碼中,如果把nodeType改成nodetype,運(yùn)行結(jié)果就不一樣了。
麻煩高手解答!
2016-11-13
nodeType和nodetype是兩個(gè)不同的東西(js是區(qū)分大小寫的)。所以結(jié)果不一樣。
具體原因:因?yàn)橛形谋竟?jié)點(diǎn),所以求下一(上一)元素節(jié)點(diǎn)需要排除文本節(jié)點(diǎn),所以需要判斷是不是元素節(jié)點(diǎn)(nodeType是不是不等于1),因?yàn)閚odetype沒有這個(gè)屬性,所以while循環(huán)會(huì)一直進(jìn)行,不會(huì)停止。結(jié)果自然不一樣。