以下是一个简单的实现示例,使用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>