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

为什么代码输出,一直显示else语句的内容?麻烦帮我看一下哪里出错了,谢谢

<!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;
    // }

    // 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>已经是最后一个节点");      
    // }
 //任务部分   
    function get_previousSibling(a){
        var b =a.previousSibling;
        while (b && b != 1){
            b = b.previousSibling;
        }
        return b;
    }
    var b = document.getElementsByTagName("li")[4];
    document.write(b.nodeName+"="+b.innerHTML+"<br>");
     var z =get_previousSibling(b);
     if(z!=null){
         document.write("previousSibling:"+z.nodeName+"="+z.innerHTML);
     }
     else {
         document.write("这是第一个节点了");
     }
</script>
</body>
</html>


正在回答

2 回答

 while (b && b.nodeType!= 1){

            b = b.previousSibling;

        }

少了b.nodeType  这个的值是数字 才可以进行判断

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

慕粉3274123 提问者

对于这个代码,感觉自己很多地方不能理解,例如,52行的代码是什么意思啊?为什么要调用这个?
2016-07-17 回复 有任何疑惑可以回复我~
#2

psmaster 回复 慕粉3274123 提问者

把previousSibling 选取见一个节点做成了一个函数,方便调用,节省代码,比如说你想选取ul的前一个节点,也可以直接调用这个函数,不用再写一遍
2016-07-17 回复 有任何疑惑可以回复我~
#3

慕粉3274123 提问者 回复 psmaster

谢谢你们的解答啊。
2016-07-17 回复 有任何疑惑可以回复我~

给函数传参,获取你要显示的内容

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

慕粉3274123 提问者

谢谢啊。
2016-07-17 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么代码输出,一直显示else语句的内容?麻烦帮我看一下哪里出错了,谢谢

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信