jquery实现点击标题显示内容,同级其他元素内容隐藏

最终呈现效果:

jquery实现点击标题显示内容,同级其他元素内容隐藏视频

核心代码块:

//点击标题元素(‘历史上的今天’)
			$(document).on('click','.item',function(){
				let data = $(this).siblings();//获取除自身外,遍历同级的所有元素,修改适用于同级所有元素
				for(let i = 0;i<data.length; i++){
					//隐藏除点击元素外其他元素
					$(data[i]).children().eq(-1).addClass("disnone")
				}
				//main_hover  这个就是文字样式而已
				if($(this).children().eq(-1).hasClass("disnone")){//判断当前点击元素是否被隐藏,如果被隐藏则显示
					$(this).addClass("main_hover").siblings().removeClass("main_hover");
					$(this).children().eq(-1).removeClass("disnone");//点击的元素移除 disnone 这个class 然后进行显示
				}else{
					$(this).removeClass("main_hover").siblings().removeClass("main_hover");
					$(this).children().eq(-1).addClass("disnone");//点击的元素添加 disnone 这个class 然后进行隐藏
				}
				
			})

html文件:(全码)

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>历史上的今天</title>
		<script src="./jquery-2.1.4.min.js"></script>
	</head>
	<style>
		*{
			padding: 0;
			margin: 0;
		}
		.container{
			width: 1200px;
			min-height: 800px;
			box-sizing: border-box;
			margin: 0 auto;
			background: #fff;
			border: 1px solid #BAB9C0;
			padding: 0 40px;
		}
		.top_box{
			width: 100%;
			padding-bottom: 10px;
			border-bottom: 1px solid #999997;
			box-sizing: border-box;
			text-align: center;
			margin-top: 30px;
			margin-bottom: 40px;
			display: flex;
			align-items: center;
			justify-content: center;
		}
		.top_box div{
			margin: 0 15px;
		}
		.top_box span{
			font-size: 14px;
			color: #5555E3;
			cursor: pointer;
		}
		.title{
			font-size: 16px;
			font-weight: 600;
			cursor: pointer;
		}
		.title span{
			font-weight: 400;
			font-size: 14px;
			color: #C0B9B6;
		}
		.today{
			color: #BAB9C0 !important;
			cursor: text !important;
		}
		.title:hover{
			color: #5555E3;
		}
		.item{
			margin-bottom: 10px;
		}
		.item div{
			font-size: 14px;
			text-indent: 2em;
			margin-top:4px;
		}
		.disnone{
			display: none;
		}
		.main_hover{
			color: #5555E3;
		}
	</style>
	<body>
		<div class="container">
			<div class="top_box">
				<span class="before">< 前一天</span><div>历史上的今天<span class="today"></div></span><span class="later">后一天 ></span>
			</div>
			<div class="items">
			</div>
		</div>
	</body>
	<script>
		$(function(){
			let milliscond = ''; //毫秒数
			let argumentsTime = '';//请求参数
			let todayTime = setTime().slice(5,)
			$('.today').html('(' + todayTime + ')')
			
			//点击前一天
			$('.before').click(function(){
				let oneDay = 1000*60*60*24;//一天的毫秒数
				let before = milliscond - oneDay
				let date = new Date();
				date.setTime(before)
				setTodaytime(date)
				todayTime = todayTime.slice(5,)
				$('.today').html('(' + todayTime + ')')
				getHistorylist(argumentsTime)
			})
			
			//点击后一天
			$('.later').click(function(){
				let oneDay = 1000*60*60*24;//一天的毫秒数
				let before = milliscond + oneDay
				let date = new Date();
				date.setTime(before)
				setTodaytime(date)
				todayTime = todayTime.slice(5,)
				$('.today').html('(' + todayTime + ')')
				getHistorylist(argumentsTime)
			})
			
			//点击显示当前元素内容
			// $(".item").each(function(index, element) {
			// 	console.log(index);
			//     $(this).click(function(){
			// 		console.log(1111);
			// 	   // $(this).addClass("fnhover").siblings("a").removeClass("fnhover");
			// 	   // $(".changeMore").attr("href",$(this).attr('href'));
			// 	   // $('#fa').siblings("div").hide().eq(index).show();
			//  	});	
			// });
			//点击标题元素(‘历史上的今天’)
			$(document).on('click','.item',function(){
				let data = $(this).siblings();//获取除自身外,遍历同级的所有元素,修改适用于同级所有元素
				for(let i = 0;i<data.length; i++){
					//隐藏除点击元素外其他元素
					$(data[i]).children().eq(-1).addClass("disnone")
				}
				//main_hover  这个就是文字样式而已
				if($(this).children().eq(-1).hasClass("disnone")){//判断当前点击元素是否被隐藏,如果被隐藏则显示
					$(this).addClass("main_hover").siblings().removeClass("main_hover");
					$(this).children().eq(-1).removeClass("disnone");//点击的元素移除 disnone 这个class 然后进行显示
				}else{
					$(this).removeClass("main_hover").siblings().removeClass("main_hover");
					$(this).children().eq(-1).addClass("disnone");//点击的元素添加 disnone 这个class 然后进行隐藏
				}
				
			})
			
		
			
			
			
			//获取当日数据
			getHistorylist(argumentsTime)
			
			
			//获取数据函数
			function getHistorylist(argumentsTime){
				$.ajax({
					type: "GET",
					url: "http://sahdfghjksfhjdksfhjd.seeyon1.server.wangserver.cn/history/getHistory?date=" + argumentsTime,
					qcontentType: 'application/json',
					dataType: "json",
					success: res => {
						let data = res.data
						data  = [{},{},{},{},{}]
						let listHtml = '';
						$.each(data, function(i, item) {
							// listHtml+= `<div class="item">
							// 			<p class="title">${item.title}<span> (${item.createTime})</span></p>
							// 			<div>${item.txt}</div>
							// 			</div>`
							listHtml+= `<div class="item">
										<p class="title">历史上的今天<span> (2022-08-22)</span></p>
										<div class="disnone">新闻 [1]  ,也叫消息、资讯,是通过报纸、电台、广播、电视台等媒体途径所传播信息的 [2]  一种称谓。是记录社会、传播信息、反映时代的一种文体。新闻概念有广义与狭义之分,就其广义而言,除了发表于报刊、广播、互联网、电视上的评论与专文外的常用文本都属于新闻之列,包括消息、通讯、特写、速写(有的将速写纳入特写之列)等等 </div>
										</div>`
						})
						$('.items').html(listHtml)
					}
				});
			}
			
			
			//初始化时间
			function setTime(){
			   var now = new Date();
			   var year = now.getFullYear(); //得到年份
			   var month = now.getMonth(); //得到月份
			   var date = now.getDate(); //得到日期
			   milliscond = now.getTime()//毫秒数
			   month = month + 1;
			   month = month.toString().padStart(2, "0");
			   date = date.toString().padStart(2, "0");
			   argumentsTime = `${year}-${month}-${date}`
			   var defaultDate = `${year}${month}${date}`;
			   return defaultDate;
			}
			
			//改变时间函数
			function setTodaytime(d){
			  milliscond = d.getTime()//毫秒数
			  var year = d.getFullYear(); //得到年份
			  var month = d.getMonth(); //得到月份
			  var date = d.getDate(); //得到日期
			  month = month + 1;
			  month = month.toString().padStart(2, "0");
			  date = date.toString().padStart(2, "0");
			  todayTime =  `${year}${month}${date}`
			  argumentsTime = `${year}-${month}-${date}`
			}
		})
	</script>
</html>
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值