用jQuery切换兄弟姐妹不起作用

时间:2015-01-29 17:30:49

标签: javascript jquery html css

我是jQuery的新手,我正试图切换兄弟姐妹。基本上我有一个div列表,每当我点击显示下一个div时,前一个div应该关闭。目前,当下一个div打开时,前一个div不会关闭,无法弄清楚原因。我必须手动打开和关闭每个div。

抱歉新手问题! :)

任何帮助都将受到高度赞赏!

function showHide(button){   
$(button).next('.showhide').toggle().siblings('.showhide').hide();
} 

html:

<div class="acc-s-container">
   <div class="acc-s-header" id="div" onclick="showHide(this)">
      <h1>Account Settings</h1>
   </div>
   <div id="divcontent" class="acc-s-content showhide">
      <p>content</p>
   </div>
</div>
<div class="acc-s-container">
   <div class="acc-s-header" id="div2" onclick="showHide(this)">
      <h1>Account Settings</h1>
   </div>
   <div id="divcontent2" class="acc-s-content showhide">
      <p>content</p>
   </div>
</div>
<div class="acc-s-container">
   <div class="acc-s-header" id="div3" onclick="showHide(this)">
      <h1>Account Settings</h1>
   </div>
   <div id="divcontent3" class="acc-s-content showhide">
      <p>content</p>
   </div>
</div>

CSS

 .acc-s-content{display:none;}

1 个答案:

答案 0 :(得分:3)

你有错误的选择器来定位来自兄弟.showhide点击div divs的div的元素.acc-s-container。使用:

function showHide(button){  
 $(button).next('.showhide').toggle().parent().siblings().find('.showhide').hide();
} 

Working Demo