单击显示/隐藏div

我正在编写一个小脚本来显示/隐藏div时单击其他div,但我无法获得第二个div可点击。

到目前为止,这是我的代码:

$(document).ready(function(){ $('div#ordontia').click(function(){ $(this).next('div#ordontia2').slideToggle("slow"); }); }); 

http://jsfiddle.net/65AK2/1/

每次单击“按钮”时,表格底部都会出现带有描述的新div。 (底部的蓝色div)。 如果单击另一个按钮,则前一个描述应该关闭,另一个应该在同一个地方打开。 (尚未实施)

在此先感谢您的帮助!

如果具有唯一ID,为什么要选择下一个元素?

 $(document).ready(function(){ $('div#ordontia').click(function(){ $('div#ordontia2').slideToggle("slow"); }); }); 

更一般的是,如果你添加更多的div:

 $(document).ready(function(){ $('.botaomedicina').click(function(){ $('#'+$(this).attr('id')+'2').slideToggle("slow"); }); }); 

与其他所有人关闭:

 $(document).ready(function(){ $('.botaomedicina').click(function(){ $('.botaomedicinadescription').slideUp("slow"); $('#'+$(this).attr('id')+'2').slideToggle("slow"); }); }); 

不要使用$.next ,它只选择当前元素的兄弟:

获取匹配元素集中每个元素的紧随其后的兄弟。 如果提供了选择器,则仅当它与该选择器匹配时,它才会检索下一个兄弟。
– jQuery文档:.next()

使用正常的:

 $('div#ordontia2').slideToggle("slow"); 

固定它。

 http://jsfiddle.net/65AK2/2/ 

首先,它看起来像你的切换div是形成错误的。 我没看到 为了它。

其次,如果你知道另一个div的ID是什么,你不需要说:

 $(this).next("#item"); 

,这没有任何意义。

 $(document).ready(function(){ $('div#ordontia').click(function(){ $('div#ordontia2').slideToggle("slow"); }); }); 

删除this ;)

试试这个

 $(document).ready(function(){ $('div#ordontia').click(function(){ $('div#ordontia2').slideToggle("slow"); }); }); 

更新小提琴http://jsfiddle.net/65AK2/4/

您可以通过ID选择器直接执行此操作

http://jsfiddle.net/65AK2/3/

 $(document).ready(function(){ $('#ordontia').click(function(){ $('#ordontia2').slideToggle("slow"); }); });