美文网首页
简单的页面控制js代码

简单的页面控制js代码

作者: Tianbu | 来源:发表于2019-10-21 10:48 被阅读0次

    页面布局大约如下:

    <h2>这是标题</h2>

    <div>这是内容</div>

    <h2>这是标题</h2>

    <div>这是内容</div>

    <h2>这是标题</h2>

    <div>这是内容</div>

    需求:希望点击标题的时候,只显示当前标题后面的div内容,其他的div都隐藏只展示未点击过的标题,js代码考虑如下:

    function noneAndBlock(t) {

            var oDiv = document.getElementsByTagName("div");

                for (var i = 0; i < oDiv.length; i++) {

                    oDiv[i].style.display = "none";

                }

                t.nextSibling .style.display = "block";

        }

    所有的标题添加方法调用事件:

    <h2 onclick="noneAndBlock(this)">这是标题</h2>

    好,测试一下,并没有达到效果,并且报错如下

    原因分析:

    nextSibling属性返回元素节点之后的兄弟节点(包括文本节点、注释节点即回车、换行、空格、文本等等);

    显然,返回的是集合对象,集合是没有display属性的 ,

    使用另一个参数,js代码修改如下:

        function noneAndBlock(t) {

            var oDiv = document.getElementsByTagName("div");

                for (var i = 0; i < oDiv.length; i++) {

                    oDiv[i].style.display = "none";

                }

                t.nextElementSibling.style.display = "block";

        }

    nextElementSibling属性只返回元素节点之后的兄弟元素节点(不包括文本节点、注释节点);

    需求实现。

    相关文章

      网友评论

          本文标题:简单的页面控制js代码

          本文链接:https://www.haomeiwen.com/subject/lgozmctx.html