一个function可以切换多个隐藏元素?

这只是一个片段,但我会在页面上有许多不同的链接。 每个链接都有一个与之关联的不同隐藏元素。 我试图避免为每个链接编写100个不同的slideToggle语句来显示它们各自的隐藏元素。 这是否接近那个?

         .county{ font:"Trebuchet MS", Arial, Helvetica, sans-serif; } .countystats{ background-color:blue; display:none; }   $('.county').click(function(){ $(this).find('.countystats').slideToggle('fast') });  one
two
stats one
stats two


我希望链接’one’显示div’stats one’,链接’two’显示div’stats two’。 提前致谢。

你可以使用:

 $('.county').click( function(){ var thisIs = $(this).index(); $('.countystats').eq(thisIs).slideToggle(300); }); 

JS小提琴演示 。

请注意,我从html中删除了br以准确获取index() 。 如果您需要每行a元素,请使用:

 a { display: block; } 

参考文献:

  • eq()
  • index()
  • slideToggle()

您可以使用下面给定的切换function,通过给出元素id数组作为输入来切换多个元素。

例如:

  toggleElements(["elem1","elem2"],["elem3"]); OR toggleElements(arr1,arr2); 
 function showElements(showEls){ for(var i=0; i 

理想情况下,您需要一种方法将链接链接到正确的div。 您可以使用这样的数据属性来完成此操作。

HTML:

 one
two
stats one
stats two

JS:

 $('.county').click(function() { $('#' + $(this).data('divId')).slideToggle(); }); 

示例 – http://jsfiddle.net/infernalbadger/6wDf9/

如果您动态生成这些链接,这应该很容易做到。