为了账号安全,请及时绑定邮箱和手机立即绑定

终于做出来了,看了半天都不知道怎么错的,后来想到X没有前一个节点了,所以才会显示不出来,然后现在就做出来了。但现在有一个疑问:不是说,如果没有前一个节点的话,就显示NULL吗?代码快照是我后来做好的,现在我复制一个有问题的代码,求解释,为什么最后一个不能运行:

<!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.nodeType!=1){

  x=x.nextSibling;}

return x;

}

function get_previousSibling(n){

var x=n.previousSibling;

while (x.nodeType!=1){

  x=x.previousSibling;}

return x;

}

var x=document.getElementsByTagName("li")[0];

document.write(x.nodeName);

document.write(" = ");

document.write(x.innerHTML);

var y=get_nextSibling(x);

document.write("<br />nextsibling: ");

document.write(y.nodeName);

document.write(" = ");

document.write(y.innerHTML);

var z=get_previousSibling(x);

document.write("<br><br>previousSibling:"+z.nodeName+"="+z.innerHTML);</script>

</body>

</html>

正在回答

1 回答

你复制的这段代码var z=get_previousSibling(x);传的参数是x,但是x没有上一个同级节点所以会有null值出现在while循环中,当你在x.nodeType的时候就会出现错误,你可以使用浏览器的开发者工具进行查看

0 回复 有任何疑惑可以回复我~
#1

Elancsia 提问者

你说的开发者工具是怎么使用的啊?
2014-09-17 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信