这样不是变成x的下两个节点了?
function get_nextSibling(n){
var x=n.nextSibling;
while (x && x.nodeType!=1){
x=x.nextSibling;
}
return x;
}
问题如题。。
<script type="text/javascript">
function get_nextSibling(n){
document.write("n的值为:"+n.value);
var x=n.nextSibling;
while (x && x.nodeType!=1){
x=x.nextSibling;
}
return x;
}
var x=document.getElementsByTagName("li")[0];
document.write("x的值为:"+x.value+"<br/>"+x.nodeValue+"<br/>"+x.nodeName+"<br/>"+x.nodeType+"<br/>");
y=get_nextSibling(x);
</script>
我的看法应该是兼容性问题吧,因为在谷歌和火狐下,空白的地方也算是一个节点,ie下空白则不会算是个节点,可以alert一下节点的个数看下
我是这么理解不知道对不对,你可以参考下:
function get_nextSibling(n){
var x=n.nextSibling; //这条语句是当下面的while循环不成立时返回的给return的值。
while (x && x.nodeType!=1){ //当循环while成立时,即两个条件满足(while 会循环到返回的nodeType=1才会停止,并给x赋停止前得到的值)
x=x.nextSibling; //给x重新赋值(新值会覆盖旧值),给return返回这个新的值。
}
return x; //所以这里返回的x的值取决于while循环是否成立;
}