javascript - 使用 Jquery 隐藏数据

标签 javascript jquery html

我有五个包含不同数据的按钮

$(".Datanewpost").click(function() {
  $(".data).toggle();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="data">
  <div id="Datanewpost">
    Data 1
    <div class="data"> Helol</div>
  </diV>
  <div id="Datanewpost">
    data 2
    <div class="data"> Helol</div>
  </div>
  <div id="Datanewpost">
    data 3
    <div class="data"> Helol</div>
  </div>
  <div id="Datanewpost">
    data 5
    <div class="data"> Helol</div>
  </div>
  <div id="Datanewpost">
    data 5
    <div class="data"> Helol</div>
  </div>
</div>

不幸的是,这不起作用,我需要做什么才能得到我想要的东西?我知道我可以通过为每个 div 分配单独的 id 来做到这一点,但这看起来编码很糟糕

注意:我希望能够单独隐藏或显示,

最佳答案

Id 在文档中应该是唯一的,请使用类代替。您可以使用 $(this).find('.data') 切换特定元素:

$(".Datanewpost").click(function(){
  $(this).find('.data').toggle();
});
.data{color: red}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="data-main">
   <div class="Datanewpost">
      Data 1
      <div class="data">  Hello</div>
   </diV>
   <div class="Datanewpost">
      Data 2
      <div class="data">  Hello</div>
   </div>
   <div class="Datanewpost">
      Data 3
      <div class="data">  Hello</div>
   </div>
   <div class="Datanewpost">
      Data 4
      <div class="data">  Hello</div>
   </div>
   <div class="Datanewpost">
      Data 5
      <div class="data">  Hello</div>
   </div>
</div>

如评论中所述,您要求在单击另一个时关闭打开的 div,只需循环遍历除当前数据之外的所有 .data 即可。然后检查 display='block' 属性将其设置为 display='none':

$(".Datanewpost").click(function(){
  $(this).find('.data').toggle();
  var current = $(this).find('.data');
  $('.data').not(current).each(function(i, el){
    if(this.style.display=='block')
      this.style.display = 'none';
  });
});
.data{
  color: red;
  display: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="data-main">
   <div class="Datanewpost">
      Data 1
      <div class="data">  Hello</div>
   </diV>
   <div class="Datanewpost">
      Data 2
      <div class="data">  Hello</div>
   </div>
   <div class="Datanewpost">
      Data 3
      <div class="data">  Hello</div>
   </div>
   <div class="Datanewpost">
      Data 4
      <div class="data">  Hello</div>
   </div>
   <div class="Datanewpost">
      Data 5
      <div class="data">  Hello</div>
   </div>
</div>

关于javascript - 使用 Jquery 隐藏数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52408452/

相关文章:

javascript - 当我使用 javascript 从网站保存图像时,如何将图像保存在我想要的本地路径中?

javascript - Node.js redis pub/sub 丢失消息

javascript - 组合两个 angularjs 表达式无法正常工作

javascript - 如何在Jquery中获取响应 session cookie

javascript - MVC Jquery/ Controller 后重定向

java - 为什么这段代码不显示 HTML 文件?

javascript - 什么是最好的 Facebook/Twitter SSO 框架

javascript - html 问题模板复选框

php - 我可以从远程页面加载 jquery colorbox 吗?

javascript - 如何在javascript中从另一个跨域url读取cookie