如何通过按下标签<a>显示隐藏内容使用选择器
How to show hidden content by pressing tag <a> using selector?
我有一个。content里面有'many'div:
<div class="content">
<div class="news">
<a class="show_more" href="#">show news 1</a>
<div class="hidden">
<p>some news 1</p>
<a class="close_hidden" href="#">close</a>
</div>
</div>
<div class="news">
<a class="show_more" href="#">show news 2</a>
<div class="hidden">
<p>some news 2</p>
<a class="close_hidden" href="#">close</a>
</div>
</div>
...
<div class="news">
<a class="show_more" href="#">show news n</a>
<div class="hidden">
<p>some news n</p>
<a class="close_hidden" href="#">close</a>
</div>
</div>
simple css: .hidden{display:none;}
和jQuery:
$(document).ready(function(){
$('.show_more').click(function(){
$('.hidden').slideDown();
});
$('.close_hidden').click(function(){
$('.hidden').slideUp();
});});
由于显而易见的原因,我的代码打开了所有隐藏的div,即使我只单击一个<a>
。
如何使用$(this)或类似的东西显示隐藏的内容?
我知道这是可能的通过使用<a>
id(添加到标签<a>
的类名id):
$('.show_more').click(function () {
$('.' + this.id).slideDown();
});
但是,当我有例如100div,这是不实际的识别每个<a>
与id,并把这个id在。hidden类
您可以遍历DOM(从被单击的元素开始)以找到正确的隐藏元素。
$('.show_more').click(function(){
$(this).closest('.news').find('.hidden').slideDown();
});
我认为你可以使用parent()
和children()
来做到这一点。
下面是一个例子:
$('.show_more').click(function(){
$(this).parent().children('.hidden').slideDown();
});
看看你的html,你要显示/隐藏的元素是下一个元素,所以.next()
可能是你最好的选择-
$('.show_more').click(function(){
if ($(this).next("div.hidden:visible").length == 0)
$(this).next("div.hidden").slideDown();
else
$(this).next("div.hidden").slideUp ();
});
相关文章:
- 在jsp中,隐藏一个基于其他具有日期选择器的字段的字段
- 选择月份后隐藏日期选择器
- jQuery显示/隐藏仅适用于第一个选择器
- 从日期选择器引导框中选择日期后,模式隐藏
- jQuery隐藏多个选择器时显示
- jQuery:检索日期选择器日期,检查是否在日期范围内,显示/隐藏字段
- 隐藏jQuery日期选择器
- Jquery日期选择器-我们如何将文本隐藏在日期选择器文本框中
- 在选择更改时显示/隐藏微调器
- 通过JQuery选择器设置CSS类属性:隐藏计数
- 日期选择器在选择月份或年份时自动隐藏
- AngularJS在图标单击时隐藏引导日期选择器
- 使用隐藏字段 ID 选择器加载另一个字段中的文本
- JQuery 从下拉选择器中隐藏和取消隐藏元素
- 当日期选择器在x-editable中隐藏/可见时,显示/隐藏按钮
- 隐藏选择器始终决定元素可见,即使元素不可见
- 日期选择器隐藏在鼠标悬停位置
- jQuery's:隐藏选择器在IE9 Quirks模式下不工作
- 如何隐藏“:在“;带有JavaScript的Psuedo选择器
- 引导工具提示隐藏选择器/切换元素