简单的页面控制js代码

页面布局大约如下:

<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属性只返回元素节点之后的兄弟元素节点(不包括文本节点、注释节点);

需求实现。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • "use strict";function _classCallCheck(e,t){if(!(e instanc...
    久些阅读 6,253评论 0 2
  • 一、DOM 什么是DOM?Document Object Model(文档对象模型)。DOM是针对HTML和XML...
    空谷悠阅读 4,556评论 0 2
  • 1. tab列表折叠效果 html: 能源系统事业部 岗位名称: 工作地点 岗位名...
    lilyping阅读 5,921评论 0 1
  • 简述JavaScript起源起源于美国的Netscape公司,原名为LiveScript,后改为JavaScrip...
    3ab670b99521阅读 8,257评论 0 0
  • 我们首先要明白,我们给页面添加效果用到的js到底是什么?js其实包含三部分:dom 文档对象模型 bom 浏览...
    一直以来都很好阅读 4,229评论 0 0

友情链接更多精彩内容