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

提示有这样的错误:Uncaught TypeError: Cannot read property 'getElementsByTagName' of null


<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<title>Tab切换</title>

<link type="text/css" rel="stylesheet" href="style.css">

<script src="jquery-2.1.1.js" type="text/javascript"></script>

<script type="text/javascript">

 

    function $(id){

    //这个是把id单独封装

    return typeof id==='string'?document.getElementById('id'):id;

    }

    window.onload=function(){

        //获取鼠标滑过或点击的标签和要切换内容的元素

        var titles=$('notice-tit').getElementsByTagName('li');

        var divs=$('notice-con').getElementsByTagName('div');

            alert(titles.length);

    }



</script>


</head>

<body>

<div id="notice">

    <div id="notice-tit" >

       <ul>

           <li><a href="#">公告</a></li>

           <li><a href="#">规则</a></li>

           <li><a href="#">论坛</a></li>

           <li><a href="#">安全</a></li>

           <li><a href="#">公益</a></li>

       </ul>

    </div>

    <div id="notice-con">


        <div style="display:none;">

            <ul>

                <li><a href="#">张勇:要玩快乐足球</a></li>

                <li><a href="#">阿里2000万驰援灾区!</a></li>

                <li><a href="#">旅游宝让你边玩边赚钱</a></li>

                <li><a href="#">多行跟进阿里信用贷款</a></li>

            </ul>

        </div><!--公告end-->


        <div style="display:none;">

            <ul>

                <li>

                    <span>[<a href="#">通知</a>]</span>

                    <a href="#">要玩快乐足球</a>

                </li>

                <li>

                    <span>[<a href="#">通知</a>]</span>

                    <a href="#">阿里2000万驰援灾区!</a>

                </li>

                <li>

                    <span>[<a href="#">通知</a>]</span>

                    <a href="#">旅游宝让你边玩边赚钱</a>

                </li>

                <li>

                    <span>[<a href="#">通知</a>]</span>

                    <a href="#">多行跟进阿里信用贷款</a>

                </li>

            </ul>

        </div><!--规则end-->


         <div style="display:none;">

            <ul>

                <li>

                    <span>[<a href="#">聚焦</a>]</span>

                    <a href="#">要玩快乐足球</a>

                </li>

                <li>

                    <span>[<a href="#">张勇</a>]</span>

                    <a href="#">阿里2000万驰援灾区!</a>

                </li>

                <li>

                    <span>[<a href="#">张勇</a>]</span>

                    <a href="#">旅游宝让你边玩边赚钱</a>

                </li>

                <li>

                    <span>[<a href="#">张勇</a>]</span>

                    <a href="#">多行跟进阿里信用贷款</a>

                </li>

            </ul>

        </div><!--论坛end-->


        <div style="display:none;">

            <ul>

                <li>

                    <span>[<a href="#">张勇</a>]</span>

                    <a href="#">要玩快乐足球</a>

                </li>

                <li>

                    <span>[<a href="#">张勇</a>]</span>

                    <a href="#">阿里2000万驰援灾区!</a>

                </li>

                <li>

                    <span>[<a href="#">张勇</a>]</span>

                    <a href="#">旅游宝让你边玩边赚钱</a>

                </li>

                <li>

                    <span>[<a href="#">张勇</a>]</span>

                    <a href="#">多行跟进阿里信用贷款</a>

                </li>

            </ul>

        </div><!--安全end-->


        <div style="display:block;">

            <ul>

                <li><a href="#">小红要玩快乐足球</a></li>

                <li><a href="#">阿里2000万驰援灾区!</a></li>

                <li><a href="#">旅游宝让你边玩边赚钱</a></li>

                <li><a href="#">爱心品牌联合征集</a></li>

            </ul>

        </div><!--公益end-->


    </div>

</div>


</body>

</html>


正在回答

13 回答

请把把html文件中的 

<script .....
</script>
移到body的最后,就可以啦!!!?

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

还是不行。被这个问题搞疯了!!!!!!!!!!!!!!!!!

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

为什么移到body就行了,我试了一下果然可以了,求解,好奇怪!!

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

慕仙5514074

我的也是一样,移到body就可以了,好奇怪
2019-02-27 回复 有任何疑惑可以回复我~

我也这样,但是前面说的都没解决

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

慕布斯37364

你试试把html文件中的 <script ..... </script> 移到body的最后试试
2018-06-04 回复 有任何疑惑可以回复我~

 function $(id){

    //这个是把id单独封装

    return typeof id==='string'?document.getElementById('id'):id;//('id')这里封装函数用的是参数,不要引号,后面调用时你传入具体值才需要引号起来

    }


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

这个问题解决了,跟第一行代码有关

function $(id){

    return typeof id==="string"?document.getElementById(id):id;

}

这句代码中的$其实代表的是函数名,所以$("tab-tit").getElementsByTagName("li"),的意思其实是获取了id为tab-tit下面的所有li,要注意html中有没定义这个id,确定有的话就不会报“Cannot read property 'getElementsByTagName' of null”这个错了


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

qq_肥鱼_1

正解~~
2018-01-30 回复 有任何疑惑可以回复我~

菜鸟表示不懂

var titles=$('notice-tit').getElementsByTagName('li');

 var divs=$('notice-con').getElementsByTagName('div');

$('notice-con')为什么可以跟getElementsByTagName('div')?又为什么会报“Cannot read property 'getElementsByTagName' of null”这样的错,看了很多人都有说到这个问题,挺纳闷,到底是用js还是jq


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

好巧,我也是怎么解决?

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

上面的回复都没解决这个问题,求解决方法?

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

我在写的时候浏览器也报了同样的错误,求解决方法?

0 回复 有任何疑惑可以回复我~
首页上一页12下一页尾页

举报

0/150
提交
取消

提示有这样的错误:Uncaught TypeError: Cannot read property 'getElementsByTagName' of null

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号