分享在网页中常见的点击标题可以切换内容的代码

2024年03月30日 懒猪技术

以下是一个简单的实现示例,使用jQuery库实现:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>点击标题切换内容</title>
    <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
    <style>
        .container {
            width: 400px;
            margin: 0 auto;
            padding: 20px;
            border: 1px solid #ccc;
            font-size: 16px;
            line-height: 1.5;
        }
        .title {
            cursor: pointer;
            font-weight: bold;
        }
        .content {
            display: none;
            padding-top: 10px;
        }
    </style>
</head>
<body>
    <div class="container">
        <h2 class="title">标题1</h2>
        <div class="content">
            <p>内容1</p>
        </div>
        <h2 class="title">标题2</h2>
        <div class="content">
            <p>内容2</p>
        </div>
        <h2 class="title">标题3</h2>
        <div class="content">
            <p>内容3</p>
        </div>
    </div>
    <script>
        // 获取所有标题元素
        var titles = $('.title');
        // 遍历标题元素
        titles.each(function(index, element) {
            // 添加点击事件处理函数
            $(this).click(function() {
                // 获取当前标题元素的下一个兄弟元素(即内容元素)
                var content = $(this).next();
                // 判断内容元素是否已显示
                if (content.is(':visible')) {
                    // 如果已显示,则隐藏内容元素
                    content.hide();
                } else {
                    // 如果未显示,则显示内容元素,并隐藏其他内容元素
                    content.show();
                    content.siblings('.content').hide();
                }
            });
        });
    </script>
</body>
</html>

以下是简化版代码,将遍历标题元素的过程合并到了事件处理函数中:

<script>
    // 添加点击事件处理函数
    $('.title').click(function() {
        // 获取当前标题元素的下一个兄弟元素(即内容元素)
        var content = $(this).next();
        // 判断内容元素是否已显示
        if (content.is(':visible')) {
            // 如果已显示,则隐藏内容元素
            content.hide();
        } else {
            // 如果未显示,则显示内容元素,并隐藏其他内容元素
            content.show();
            content.siblings('.content').hide();
        }
    });
</script>

本文链接:http://so.lmcjl.com/news/711/

展开阅读全文
相关内容