javascript - jQuery 事件仅影响元素的此实例

标签 javascript jquery html

我有多个具有相同类名的元素,理想情况下它们将是七个,因此,在页面加载时它们将被隐藏,然后我想在单击 anchor 时显示额外的文本,但仅限于该实例div 的,我的 jQuery 代码当前正在删除 div 的所有实例中的隐藏内容,我猜测解决方案是在某处添加 this 。谢谢!

$(".show-more").click(function() {
  return $(".extra-text").toggleClass("hidden");
});
.hidden {
  display: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div>
  <p>Text</p>
  <p class="hidden extra-text">More text</p>
  <a href="#" class="show-more">Show more..</a>
</div>
<div>
  <p>Text</p>
  <p class="hidden extra-text">More text</p>
  <a href="#" class="show-more">Show more..</a>
</div>

最佳答案

您需要遍历 DOM 以查找与引发事件的元素相关的 .extra-text 元素。

为此,您可以使用 this 关键字,它将引用引发点击事件的元素。试试这个:

$(".show-more").click(function() {
    $(this).closest('div').find(".extra-text").toggleClass("hidden");
});

关于javascript - jQuery 事件仅影响元素的此实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30669426/

相关文章:

javascript - 获取页面以正常工作

javascript - 如何通过 jQuery 和 Ajax 将 Google 表单数据发布到电子表格

javascript - 超时不起作用

javascript - 多个复选框过滤器返回服务器错误 500

html - AngularJS 购物车应用 : Disable button when quantity < 2

jquery - 使用 jquery 删除/恢复特定窗口大小的下拉菜单

javascript - 计算价格

javascript - Android:有没有办法从我的应用程序执行 JavaScript?

javascript - 获取 jquery .post() 函数的结果

html - IE 11 和 mozilla 复选框不起作用