jquery - 显示/隐藏 ul li 内的内容

标签 jquery find toggle

我想通过单击链接来显示/隐藏 li 中的内容,就像“更多信息”按钮一样。我的代码隐藏了每个 li 的内容,而不仅仅是单击的内容。请看一下:

$(document).ready(function() {
  $('ul li').on('click', '.abrir', function(e) {
    e.preventDefault();
    $('ul li').find('.oculto').toggle();
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<ul>
  <li>
    Biológica
    <span class="abrir">>></span>
    <span class="oculto">Texto oculto para mostrar</span>
  </li>
  <li>
    Oxidativa
    <span class="abrir">>></span>
    <span class="oculto">Texto oculto para mostrar</span>
  </li>
  <li>
    Pasificación
    <span class="abrir">>></span>
    <span class="oculto">Texto oculto para mostrar</span>
  </li>
  <li>
    Dulzor
    <span class="abrir">>></span>
    <span class="oculto">Texto oculto para mostrar</span>
  </li>
</ul>

最佳答案

问题是因为您选择了点击处理程序中的所有 li 元素,而不是包含触发事件的 .abrir 元素的元素。

为此,您可以使用 this 关键字,因为 jQuery 将事件处理函数的范围设置为引发事件的元素。从那里您可以使用 siblings() 方法来检索相关的 .oculto 元素。试试这个:

$(function() {
  $('ul li').on('click', '.abrir', function(e) {
    e.preventDefault();
    $(this).siblings('.oculto').toggle();
  });
});
.oculto { display: none; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<ul>
  <li>
    Biológica
    <span class="abrir">>></span>
    <span class="oculto">Texto oculto para mostrar</span>
  </li>
  <li>
    Oxidativa
    <span class="abrir">>></span>
    <span class="oculto">Texto oculto para mostrar</span>
  </li>
  <li>
    Pasificación
    <span class="abrir">>></span>
    <span class="oculto">Texto oculto para mostrar</span>
  </li>
  <li>
    Dulzor
    <span class="abrir">>></span>
    <span class="oculto">Texto oculto para mostrar</span>
  </li>
</ul>

关于jquery - 显示/隐藏 ul li 内的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48988560/

相关文章:

ruby-on-rails - 在 Ruby on Rails 中通过其引用模型(子模型?)查找模型

jquery - 如何让 CSS 背景属性与 jQuery 中的 toggleClass() 一起使用?

jquery - 使用 jQuery 保留切换状态

javascript - 克隆元素并在 jquery 循环内进行修改将永远执行

javascript - 如何使用 Javascript 或 jQuery 突出显示文本的前 10 个字符?

linux - 递归地chmod

regex - 正则表达式非结尾词linux终端

javascript - 谷歌地图多边形显示/隐藏切换与复选框

jquery - 如何检查 td 是否为 :nth-child(3) is greater than or equal to a percentage?

jquery - delegate() 的性能