如何在一个选择器jQuery中显示和隐藏多个元素
How to show and hide multiple element in one selector jQuery?
我想
在单击具有类show_hidden_element
的元素时显示带有 ID hidden_element
的隐藏元素,并在单击带有 ID close_hidden_element
的元素时关闭带有 ID hidden_element
的元素,如果我只做一个,我的脚本可以正常工作,但我有三个具有相同 CLASS 和 ID 的元素, 它不起作用,有人请帮忙。
这是我的脚本
<article class="post show_hidden_element">
<div id="hidden_element">
<div class="read_box">
<div class="read_box_content">
<h2 class="title">Lorem Ipsum</h2>
<a id="close_hidden_element" class="button_close">×</a>
</div>
</div>
</div>
<div class="border"></div>
</article>
<article class="post show_hidden_element">
<div id="hidden_element">
<div class="read_box">
<div class="read_box_content">
<h2 class="title">Lorem Ipsum</h2>
<a id="close_hidden_element" class="button_close">×</a>
</div>
</div>
</div>
<div class="border"></div>
</article>
<article class="post show_hidden_element">
<div id="hidden_element">
<div class="read_box">
<div class="read_box_content">
<h2 class="title">Lorem Ipsum</h2>
<a id="close_hidden_element" class="button_close">×</a>
</div>
</div>
</div>
<div class="border"></div>
</article>
我的jQuery脚本是
$(this).find(".show_hidden_element").click( function(){
$(this).find("#hidden_element").show();
});
$(this).find("#close_hidden_element").click( function(){
$(this).find("#hidden_element").hide();
});
id
和 class
之间的区别在于 id 是唯一的,类不是。此外,一个元素可以有多个类,但 id 是唯一的。
使用 class="close_hidden_element button_close"
。
<article class="post show_hidden_element">
<div class="hidden_element">
<div class="read_box">
<div class="read_box_content">
<h2 class="title">Lorem Ipsum</h2>
<a class="close_hidden_element button_close">×</a>
</div>
</div>
</div>
<div class="border"></div>
</article>
<article class="post show_hidden_element">
<div class="hidden_element">
<div class="read_box">
<div class="read_box_content">
<h2 class="title">Lorem Ipsum</h2>
<a class="close_hidden_element button_close">×</a>
</div>
</div>
</div>
<div class="border"></div>
</article>
<article class="post show_hidden_element">
<div class="hidden_element">
<div class="read_box">
<div class="read_box_content">
<h2 class="title">Lorem Ipsum</h2>
<a class="close_hidden_element button_close">×</a>
</div>
</div>
</div>
<div class="border"></div>
</article>
你的jquery应该是。
$(document).on('click', 'div.show_hidden_element',function(){
$(".hidden_element").show();
});
$(document).on('click', 'div.close_hidden_element',function(){
$(".hidden_element").hide();
});
建议:阅读此 http://css-tricks.com/the-difference-between-id-and-class/
页面上的
元素必须具有唯一 ID。如果您希望此功能正常工作,则需要将它们更改为类。您是否希望每个<article>
仅通过各自的触发器隐藏/显示?
<article class="post show_hidden_element">
<div class="hidden_element">
<div class="read_box">
<div class="read_box_content">
<h2 class="title">Lorem Ipsum</h2>
<a class="close_hidden_element" class="button_close">×</a>
</div>
</div>
</div>
<div class="border"></div>
</article>
<article class="post show_hidden_element">
<div class="hidden_element">
<div class="read_box">
<div class="read_box_content">
<h2 class="title">Lorem Ipsum</h2>
<a class="close_hidden_element" class="button_close">×</a>
</div>
</div>
</div>
<div class="border"></div>
</article>
<article class="post show_hidden_element">
<div class="hidden_element">
<div class="read_box">
<div class="read_box_content">
<h2 class="title">Lorem Ipsum</h2>
<a class="close_hidden_element" class="button_close">×</a>
</div>
</div>
</div>
<div class="border"></div>
</article>
jQuery
$("article").on("click",".show_hidden_element",function(){
$(this).find(".hidden_element").show();
});
$("article").on("click",".close_hidden_element",function(){
$(this).closest(".hidden_element").hide();
});
实际上,由于show_hidden_element
类的位置,这不太正确。最好将<a close="close_hidden_element" class="button_close">×</a>
设置为切换,如下所示:
<article class="post show_hidden_element">
<div class="hidden_element">
<div class="read_box">
<div class="read_box_content">
<h2 class="title">Lorem Ipsum</h2>
<a class="close_hidden_element" class="button_close">×</a>
</div>
</div>
</div>
</article>
$(function () {
$("article").on("click", ".close_hidden_element", function () {
$(".hidden_element").toggle();
});
});
多个元素不能使用相同的 id。您必须将所有id="hidden_element"(以及其他(的id转换为类,然后使用类似的东西。
<article class="post show_hidden_element">
<div class="hidden_element">
<div class="read_box">
<div class="read_box_content">
<h2 class="title">Lorem Ipsum</h2>
<a id="close_hidden_element1" class="button_close">×</a>
</div>
</div>
</div>
<div class="border"></div>
</article>
<article class="post show_hidden_element">
<div class="hidden_element">
<div class="read_box">
<div class="read_box_content">
<h2 class="title">Lorem Ipsum</h2>
<a id="close_hidden_element2" class="button_close">×</a>
</div>
</div>
</div>
<div class="border"></div>
</article>
<article class="post show_hidden_element">
<div class="hidden_element">
<div class="read_box">
<div class="read_box_content">
<h2 class="title">Lorem Ipsum</h2>
<a id="close_hidden_element3" class="button_close">×</a>
</div>
</div>
</div>
<div class="border"></div>
</article>
jquery
$(".show_hidden_element").click( function(){
$(this).find(".hidden_element").show();
});
$(".button_close").click( function(){
$(this).closest(".hidden_element").hide();
});
相关文章:
- 在jquery中为显示/隐藏设置cookie
- PHP Javascript显示/隐藏按钮不工作
- 打开/关闭按钮以显示/隐藏内容
- 显示隐藏复选框
- 在bootstrap中显示隐藏特定的li
- JQuery上下文菜单显示/隐藏问题
- JQuery在单击时停止显示/隐藏
- HTML5在提交并显示所需标签后显示隐藏的表单元素
- 使用 jQuery 切换显示/隐藏
- 显示/隐藏有关模型更改的指令内容
- Bootstrap在页面加载缓慢时会立即显示隐藏的模式对话框
- 根据特定条件使用ng显示/ng隐藏来显示/隐藏元素
- 显示/隐藏不起作用
- 使用ng-hide根据条件显示/隐藏按钮
- 仅在第一个结果中显示/隐藏MySQL结果函数
- 显示/隐藏http://ftp链接
- 在显示/隐藏中单击时删除的文本
- 是否可以在不重新渲染的情况下显示/隐藏父对象中的元素
- 将页面内容向左移动时显示/隐藏右侧面板
- 显示/隐藏将不会加载