javascript - 单击另一个 div 时如何显示特定文本?

标签 javascript jquery html css

我想要做的是当有人点击阅读更多按钮时。其余的隐藏文本应该会显示出来。在某种程度上,我已经能够用这段代码实现我想要的。但问题是,当我点击阅读更多按钮时,所有文章都会展开,而我只想展开被点击的特定文章。

我也可以为每篇文章使用不同的 div 名称并在其上使用 hide show 属性,但是有很多文章所以我不能让我的代码冗余。

$(document).ready(function() {
	$(".hide").hide(); 
    $(".more").click(function(){
        $(".hide").show(600);
        $(this).hide();
    });
});
//@import url(https://fonts.googleapis.com/css?family=Open+Sans);
//@import url(https://fonts.googleapis.com/css?family=Raleway);
* {
	margin: 0;
	padding: 0;
}
nav{
	z-index: 100;
}

body {
	z-index: 99;
}

header{
	z-index: 99;
	padding-top: 20px;
	padding-bottom: 1px;
	font-family: 'Open Sans';
	font-size: 60px;
	width: 100%;
	text-align: center;
}

h2 {
	z-index: 99;
	padding: 0px 10px 0px 0px;
	font-family: 'Raleway','Sans Serif';
	font-size: 40px;
}

.Template {
	z-index: 99;
	margin: 20px;
	padding: 10px;
	font-family: 'Raleway','Sans Serif';
	letter-spacing: 1px;

}
.more{
	cursor:pointer;
}
img{
	height: 100%;
	width: 100%;
}

.imghold{
	float: right;
	margin: 0px 20px;
	height: 400px;
	width: 400px;
	z-index: 99;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="Template">
	<h2>Heading</h2>
	<div class="imghold"><img src="" alt="insert"></div>
	<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
	</p>
	<p>
	tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
	quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
	consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
	cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
	proident, sunt in culpa qui officia deserunt mollit anim id est laborum.Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod</p>
	<br>
	<div class="more">
		Read More
	</div>
	<P class="hide">
	tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
	quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
	consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
	cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
	proident, sunt in culpa qui officia deserunt mollit anim id est laborum.Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod</p>
</div>
<div class="Template">
	<h2>Heading</h2>
	<div class="imghold"><img src="" alt="insert"></div>
	<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
	</p>
	<p>
	tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
	quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
	consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
	cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
	proident, sunt in culpa qui officia deserunt mollit anim id est laborum.Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
	tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
	quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
	consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
	cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
	proident, sunt in culpa qui officia deserunt mollit anim id est laborum.Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod</p>
	<br>
	<div class="more">
		Read More
	</div>
	<P class="hide">
	tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
	quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
	consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
	cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
	proident, sunt in culpa qui officia deserunt mollit anim id est laborum.Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
	tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
	quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
	consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
	cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
	proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
</div>

此外,如果展开时的文本可以像 block 一样淡入而不是现在的动画,那就更好了。

最佳答案

使用.next()代替普通类hide

$(document).ready(function() {
	$(".hide").hide(); 
    $(".more").click(function(){
        $(this).next(".hide").show(600);
        $(this).hide();
    });
});
//@import url(https://fonts.googleapis.com/css?family=Open+Sans);
//@import url(https://fonts.googleapis.com/css?family=Raleway);
* {
	margin: 0;
	padding: 0;
}
nav{
	z-index: 100;
}

body {
	z-index: 99;
}

header{
	z-index: 99;
	padding-top: 20px;
	padding-bottom: 1px;
	font-family: 'Open Sans';
	font-size: 60px;
	width: 100%;
	text-align: center;
}

h2 {
	z-index: 99;
	padding: 0px 10px 0px 0px;
	font-family: 'Raleway','Sans Serif';
	font-size: 40px;
}

.Template {
	z-index: 99;
	margin: 20px;
	padding: 10px;
	font-family: 'Raleway','Sans Serif';
	letter-spacing: 1px;

}
.more{
	cursor:pointer;
}
img{
	height: 100%;
	width: 100%;
}

.imghold{
	float: right;
	margin: 0px 20px;
	height: 400px;
	width: 400px;
	z-index: 99;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="Template">
	<h2>Heading</h2>
	<div class="imghold"><img src="" alt="insert"></div>
	<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
	</p>
	<p>
	tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
	quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
	consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
	cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
	proident, sunt in culpa qui officia deserunt mollit anim id est laborum.Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod</p>
	<br>
	<div class="more">
		Read More
	</div>
	<P class="hide">
	tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
	quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
	consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
	cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
	proident, sunt in culpa qui officia deserunt mollit anim id est laborum.Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod</p>
</div>
<div class="Template">
	<h2>Heading</h2>
	<div class="imghold"><img src="" alt="insert"></div>
	<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
	</p>
	<p>
	tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
	quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
	consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
	cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
	proident, sunt in culpa qui officia deserunt mollit anim id est laborum.Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
	tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
	quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
	consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
	cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
	proident, sunt in culpa qui officia deserunt mollit anim id est laborum.Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod</p>
	<br>
	<div class="more">
		Read More
	</div>
	<P class="hide">
	tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
	quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
	consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
	cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
	proident, sunt in culpa qui officia deserunt mollit anim id est laborum.Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
	tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
	quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
	consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
	cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
	proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
</div>

关于javascript - 单击另一个 div 时如何显示特定文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36689374/

相关文章:

javascript - 如何获取表格单元格内的值?

javascript - 如何从vuejs组件访问方法?

javascript - 尝试让多个计时器在单个页面上工作

css - iPad 上的表单验证和设计

html - 这是网页还是图片?

javascript - 是否可以获取 WASM 文件并返回 JS 文件?

javascript - 在 React 中导入文件的不同方式

python - django应用程序中的多字段搜索错误结果

javascript - 点击后下拉框消失

javascript - 无法在我的页面内显示旋钮饼图,饼图现在显示