jquery只切换一个元素而不必使用ID

jquery只切换一个元素而不必使用ID,jquery,html,toggle,visibility,Jquery,Html,Toggle,Visibility,我的页面上有多个具有相同类的div。我希望能够单独切换它们。使用此脚本: $(document).ready(function() { $('.file').hide(); $('a.toggle').click(function() { $('.file').slideToggle(1000); $(this).text($(this).text() == 'show' ? 'hide' : 'show'); return false;

我的页面上有多个具有相同类的div。我希望能够单独切换它们。使用此脚本:

 $(document).ready(function() {
   $('.file').hide();

   $('a.toggle').click(function() {
      $('.file').slideToggle(1000);
      $(this).text($(this).text() == 'show' ? 'hide' : 'show');
      return false;
   });
 });
HTML如下所示:

<div class="file-wrapper">
 <h5>(<a href="#" class="toggle">show</a>)</h5>
  <div class="file">
   <?php require "lipsum.php"; ?>
  </div><!-- .file -->
</div><!-- .file-wrapper -->

<div class="file-wrapper">
 <h5>(<a href="#" class="toggle">show</a>)</h5>
  <div class="file">
   <?php require "lipsum.php"; ?>
  </div><!-- .file -->
</div><!-- .file-wrapper -->

()
()
现在,如果我单击其中一个链接,它将切换页面上的两个div(页面最终将有多达10个可切换div。我知道我可以只向每个div添加id,但我不想为每个id编写一次jquery脚本)

我对jquery还比较陌生,所以我相信有一种简单的方法可以做到这一点。我尝试过使用.nestest('div'),但也不起作用


有什么帮助吗?

也许你可以试试这个:

$(this).parent('h5').next('div.file').slideToggle(1000);

编辑:这里有一个例子:

也许你可以试试这个:

$(this).parent('h5').next('div.file').slideToggle(1000);

编辑:这里有一个例子:

这是因为它总是用类文件隐藏所有的div 像这样做

$(document).ready(function() { $('.file').hide(); $('a.toggle').click(function() { $('div.file', this.parentNode).slideToggle(1000); $(this).text($(this).text() == 'show' ? 'hide' : 'show'); return false; }); }); $(文档).ready(函数(){ $('.file').hide(); $('a.toggle')。单击(函数(){ $('div.file',this.parentNode).slideToggle(1000); $(this).text($(this).text()=='show'?'hide':'show'); 返回false; }); });
这是因为它总是用类文件隐藏所有div 像这样做

$(document).ready(function() { $('.file').hide(); $('a.toggle').click(function() { $('div.file', this.parentNode).slideToggle(1000); $(this).text($(this).text() == 'show' ? 'hide' : 'show'); return false; }); }); $(文档).ready(函数(){ $('.file').hide(); $('a.toggle')。单击(函数(){ $('div.file',this.parentNode).slideToggle(1000); $(this).text($(this).text()=='show'?'hide':'show'); 返回false; }); });
您需要在上面再添加一个
.parentNode
,因为
div.file
将只与子体匹配,并且它是
this.parentNode
$('div.file',this.parentNode.parentNode)的同级
您需要在上面再添加一个
.parentNode
,因为
div.file
将只与子体匹配,并且它是
this.parentNode
$('div.file',this.parentNode.parentNode)