js点击标题出现下拉框

我们在制作网页过程中用到列表时一般会使用<ul>或者<ol>标签,很少用刑<dl>标签,但是这个三个标签却有着不可忽视的作用,毕竟Web标准中要尽最大可能的使用已有的标签。它们的用途是:
< dl>< /dl>用来创建一个普通的列表,
< dt>< /dt>用来创建列表中的上层项目,
< dd>< /dd>用来创建列表中最下层项目,
< dt>< /dt>和< dd>< /dd>都必须放在< dl>< /dl>标志对之间。
我们可以用<dl></dl>标签写一个简单的点击事件
样式

<style>
        dl,dt,dd {
            /* 去掉默认样式 */
            margin: 0;
            padding: 0;
        }
        dt {
            /* 宽高背景下边框 */
            width: 300px;
            height: 20px;
            background: blueviolet;
            border-bottom: 1px solid #fff;
            text-align: center;
        }
        dd {
            /* 宽高边框 样式隐藏 */
            width: 300px;
            height: 100px;
            border:1px solid #333;
            display: none;
        }
        .block {
            display: block;
        }
        .none {
            display: none;
        }
    </style>

结构

 <div>
        <dl>
            <dt>11</dt>
            <dd>内容1</dd>
        </dl>
        <dl>
            <dt>22</dt>
            <dd>内容2</dd>
        </dl>
        <dl>
            <dt>33</dt>
            <dd>内容3</dd>
        </dl>
    </div>

js部分

<script>
        // getElementsByTagName() 通过标签名称查找元素 查找dl标签
        var dlElement = document.getElementsByTagName('dl');
        // 遍历数组
        for(var j = 0; j < dlElement.length; j++) {
            // 给函数命名
            (function(i) {
                // 通过dl下标为0的最后一个子元素的点击事件 lastElementChild 最后一个元素节点
                dlElement[j].firstElementChild.onclick = function() {
                    // console.log(1);
                    // 调用dl下标为零的的最后一个子元素的类名
                    var a = dlElement[i].lastElementChild.className;
                    // 调用dl的下标为零的最后一个子元素的   contains 包含
                    var flag = dlElement[i].lastElementChild.classList.contains('block');
                    // 判断语句 调用下标为零的最后一个子元素包含block
                    // if else 是判断语句
                    if(flag) {
                        // 下标为零的最后一个子元素的类名 = none
                        dlElement[i].lastElementChild.className = 'none';
                    }
                    else {
                        // 遍历数组
                        for(var k = 0; k < dlElement.length; k++) {
                            // 下标为零的最后一个子元素的类名为none;
                            dlElement[k].lastElementChild.className = 'none';
                        }
                        // 下标为0的最后一个子元素的类名为block
                        dlElement[i].lastElementChild.className = 'block';
                    }
                }
            })(j);
        }
    </script>
Image 12.png

这样一个简单的点击标题出现下拉框事件就完成啦!
希望我的理解可以给你们提供一些帮助,学识有限,如果有地方出现错误或者有更好的方法去实现,欢迎私信!

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

相关阅读更多精彩内容

  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 28,404评论 1 45
  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,697评论 1 92
  • HTML标签解释大全 一、HTML标记 标签:!DOCTYPE 说明:指定了 HTML 文档遵循的文档类型定义(D...
    米塔塔阅读 8,725评论 1 41
  • HTML5< !--...--> 标签 comment 注释标签用于在源文档中插入注释。注释内容不会被浏览器显示。...
    野小宝阅读 5,129评论 0 10
  • HTML5 标签comment 注释标签用于在源文档中插入注释。注释内容不会被浏览器显示。为代码编写注释的好处是...
    才気莮孒阅读 9,569评论 1 25

友情链接更多精彩内容