有段程序的逻辑搞不明白,求教
<!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 && x.nodeType!=1){
x=x.nextSibling;
}
return x;
}
function get_priousSibling(n){
var x=n.priousSibling;
while(x && x.nodeType!=1){
x=x.priousSibling;
}
return x;
}
var x=document.getElementsByTagName("li");
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>已经是最后一个节点");
}
var z=get_priousSibling(x);
if(z!=null){
document.write("<br/>priousSibling:");
document.write(z.nodeName);
document.write(" = ");
document.write(z.innerHTML);}
else{
document.write("<br>已经是第一个节点")
}
</script>
</body>
</html>
这段程序运行结果,最后一个结果一直是 已经是第一个节点 这说明Z=NULL,对不对?
如果对,为什么变量X只被调用了一次?这段程序的错误出在哪里?我一直理不清这段程序的逻辑,第一个结果可以正常显示,说明变量X是被调用了一次的,为什么第二次就不行了?
function get_priousSibling(n){
var x=n.priousSibling;
while(x && x.nodeType!=1){
x=x.priousSibling;
}
return x;
}
骚年,你单词拼错了。。。priousSibling; previousSibling 刚吃饭回来
正如楼上所言 ,你单词拼错了 这样 永远得到的都是undefined在undefined 和 null 做比较的时候,他们是==的 falost 发表于 2016-4-1 13:25
刚吃饭回来
正如楼上所言 ,你单词拼错了 这样 永远得到的都是undefined在undefined 和 null 做比较的 ...
你为啥今天不夸我了~好桑心~ 黑熊怪 发表于 2016-4-1 12:33
function get_priousSibling(n){
var x=n.priousSibling;
while(x && x.nodeType!=1){
想了我两天半,以为我逻辑混乱了,最后居然是这样....我好蛋疼.... falost 发表于 2016-4-1 13:25
刚吃饭回来
正如楼上所言 ,你单词拼错了 这样 永远得到的都是undefined在undefined 和 null 做比较的 ...
我一直以为是我逻辑乱了,或者JS不能这样用......没往单词拼错方面想。。。。看来对自己的逻辑能力不够自信啊。。。 你可以把var xxx=xxx写在前面,把函数写在后面,在js读代码的时候会先提取函数声明,那样写的话代码更好看也更好理解。
var x=xxx,y=getxxx(),z=getXXXX(); function getxxx(){}function getXXXX(){}
其实当我第一眼看到你代码的时候我是拒绝的。。。差点以为看不懂。。。 黑熊怪 发表于 2016-4-1 14:29
你可以把var xxx=xxx写在前面,把函数写在后面,在js读代码的时候会先提取函数声明,那样写的话代码更好看 ...
OK,学习了
页:
[1]