jquery - 打开多次出现的父子div
问题描述
我有多个要单独打开的下拉列表实例。我打开的 jQuery 会切换页面上的所有“下拉内容”。
是否可以停止这种情况并只切换每个父母的子 div?
这是我的代码:
jQuery('.dropbtn').click(
function() {
jQuery('dropdown-content').toggle();
});
<div class="dropdown">
<button class="dropbtn most-left">Title</button>
<div class="dropdown-content">
<p>some text</p>
</div>
</div>
解决方案
问题是因为您选择了所有 .dropdown-content
元素。要解决此问题,请使用this
click 事件处理程序中的关键字来引用button
被点击的内容。从那里您可以遍历 DOM 以找到要切换的相关 div。您可以使用closest()
andfind()
或next()
. 试试这个:
jQuery(function($) {
$('.dropbtn').click(function() {
$(this).next('.dropdown-content').toggle();
});
});
.dropdown-content { display: none; }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="dropdown">
<button class="dropbtn most-left">Title</button>
<div class="dropdown-content">
<p>some text</p>
</div>
</div>
<div class="dropdown">
<button class="dropbtn most-left">Title</button>
<div class="dropdown-content">
<p>some text</p>
</div>
</div>
<div class="dropdown">
<button class="dropbtn most-left">Title</button>
<div class="dropdown-content">
<p>some text</p>
</div>
</div>
推荐阅读
- javascript - JavaScript: Listening for browser tab change
- tensorflow - 如何使用监督生成对抗网络修复图像?
- python - Using struct.pack to get total size of file and send it to server via TCP socket
- google-sheets - UNIQUE function does not filter values
- python - 在 Pycharm 中高效地使用 Jinja Python 模板
- c - c 编译器如何解释源代码中的空格?
- sql-server - 为链接服务器对象添加提供程序到 SSMS
- c# - Why must virtual elements be public and can't be protected in C#?
- angular - 缺少 Angular 库 / ng-packagr 样式
- modelica - 如何定义参数之间的关系并保持灵活使用?