javascript - jquery 扩展和收缩行只适用于第一个

标签 javascript jquery html css

我试图在这里制作一行以在用户点击时展开并在用户点击另一行或再次点击时向上滑动,

我试过下面的代码,它似乎只适用于第一行而不适用于其余行

$(document).ready(function() {
  $('#sRow').click(function() {
    if (!$(this).find('.details').is(":visible")) {
      $(this).find('.details').slideDown('600');
    }else{
      $(this).find('.details').slideUp('600');
    }
  });
});
.details { display: none; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="sRow" style="padding: 5px 5px 5px 5px; border: 2px #000 solid;">
  Something here
  <div class="details">
    <hr>
    some detail
  </div>
</div>
<br>
<div id="sRow" style="padding: 5px 5px 5px 5px; border: 2px #000 solid;">
  Something else here
  <div class="details">
    <hr>
    some other detail
  </div>
</div>
<br>
<div id="sRow" style="padding: 5px 5px 5px 5px; border: 2px #000 solid;">
  Something else here
  <div class="details">
    <hr>
    some other detail
  </div>
</div>

谢谢

最佳答案

  1. 使用类而不是 ID。
  2. ID 在上下文中应该是唯一的

$(document).ready(function() {
  $('.sRow').click(function() {
    $('.details:visible').slideUp('600');
    if (!$(this).find('.details').is(":visible")) {
      $(this).find('.details').slideDown('600');
    } else {
      $(this).find('.details').slideUp('600');
    }
  });
});
.details {
  display: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="sRow" style="padding: 5px 5px 5px 5px; border: 2px #000 solid;">
  Something here
  <div class="details">
    <hr> some detail
  </div>
</div>
<br>
<div class="sRow" style="padding: 5px 5px 5px 5px; border: 2px #000 solid;">
  Something else here
  <div class="details">
    <hr> some other detail
  </div>
</div>
<br>
<div class="sRow" style="padding: 5px 5px 5px 5px; border: 2px #000 solid;">
  Something else here
  <div class="details">
    <hr> some other detail
  </div>
</div>

关于javascript - jquery 扩展和收缩行只适用于第一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50321470/

相关文章:

javascript - 子 DOM 元素的递归函数

javascript - 如何使用ajax和xml将自动完成搜索中的值放入隐藏字段

javascript - 给出与兄弟字符串最接近的元素类

javascript - 如何使用css一次显示一个子菜单

jquery - 如何使所有 li 组件都可以为每个 ul 父级排序?

javascript - 收到的数据修改后再次ajax 'POST'

javascript - 开发控制台打开时无法加载页面

jquery - 提交前确认表单

javascript - 删除前 2 个 <li> 内容,除了标签 <label> 中的内容

html - CSS 两列布局宽度(主体与标题)