javascript - 单击位于隐藏和显示的 div 之外的标签后,如何隐藏/显示标签 a

标签 javascript jquery css twitter-bootstrap

我有一些具有以下结构的 html 代码。当我单击带有“moreCases”类的标签 a 时,带有“container-cases”类的 div 变为显示,当我单击带有“container-cases”类的“lessCases”div 时变为隐藏但带有“moreCases”的标签 a 做不成秀了,我怎么解决?

HTML:

<a href="#!" class="moreCases show">more 1</a>
<div class="container-cases hide">
   <input type="text" />                 
   <a href="#!" class="lessCases">less 1</a>
</div>

JavaScript:

$(document).ready(function () {
      $(".moreCases").each(function () {
          var more = $(this);
          more.click(function () {
              more.next().removeClass('hide').addClass('show');
              more.removeClass('show').addClass('hide');
          });
      });
      $(".lessCases").each(function () {
          var less = $(this);
          less.click(function () {
              less.parent().removeClass('show').addClass('hide');            
              less.prev(".moreCases").removeClass('hide').addClass('show');                                     
          });
      });
});

最佳答案

在使用 prev() 之前,您必须定位到 parent():

less.parent().prev(".moreCases").removeClass('hide').addClass('show');

$(document).ready(function () {
  $(".moreCases").each(function () {
      var more = $(this);
      more.click(function () {
          more.next().removeClass('hide').addClass('show');
          more.removeClass('show').addClass('hide');
      });
  });
  $(".lessCases").each(function () {
      var less = $(this);
      less.click(function () {
          less.parent().removeClass('show').addClass('hide'); 
          less.parent().prev(".moreCases").removeClass('hide').addClass('show');                                    
      });
  });
});
.hide{
  display: none;
}
.show{
  display: block;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a href="#!" class="moreCases show">more 1</a>
<div class="container-cases hide">
  <input type="text" />                 
  <a href="#!" class="lessCases">less 1</a>
</div>

关于javascript - 单击位于隐藏和显示的 div 之外的标签后,如何隐藏/显示标签 a,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51805816/

相关文章:

javascript - 如何强制图像在加载时解码?

javascript - 打开 div 后,toggleClass 不会关闭

css - 使用 Material UI 时动画未触发

javascript - 使用正则表达式匹配加入的 AmPm 小时数

javascript - AngularJS $http GET 调用获取 "Cannot GET/[object%20Object]"错误

javascript - 使用 jquery xmlhttp.responsetext 结果无法出现在 div 中

css - EXTjs5 - 自定义主题问题 1 [Tab]

javascript - ng-repeat 元素没有显示

javascript - Jquery点击功能不加载新内容

javascript - 购物车数据未使用 ajax 在 shopify 中更新