2013-08-01 53 views
2

我需要的JS有一点帮助这显示/隐藏功能显示/隐藏循环JS问题

基本上在现场有PHP环路回声如下次X-数的HTML代码。

我需要一些JS来允许我使用show/hide函数来定位每个单独的实例,不幸的是我的JavaScript知识很低 - 我有一些开发人员的帮助,下面的代码,但我似乎在某处出错了上下行作为控制台返回该错误消息“未捕获的SyntaxError:意外的标识符”

任何了解或帮助到这将是非常感谢!

在此先感谢

的HTML

<span class="contentShow" >Dropdown Text Here...</span> 
<a id="prod_more_trigger" ><span>More...</span></a> 

的JS

<script type="text/javascript"> 
     $(document).ready(function() 
     { 

      var i = 0; 
      $(document).find('span.contentShow').each(function() { 
       $(this).attr('data-id', i++); 

       $('span.contentShow').hide(); 

      }); 

      i = 0; 
      $(document).find('a.prod_more_trigger').each(function() { 
       $(this).attr('data-id', i++); 
       $(this).click(function() { 

       var $span = $(document).find('span.content[data-id="' + $(this).attr('data-id) + "]'); 


       $('span.contentShow').toggle('fast'); 


       }); 
      }); 


     }); 
</script> 

回答

3

你缺少夫妇报价在此线以下

find('span.content[data-id="' + $(this).attr('data-id) + "]'); 

应该是

find('span.content[data-id="' + $(this).attr('data-id') + '"]'); 
                 ^^
                 | | 
              Missing the closing quote 

而且你的锚看起来像这样

<a id="prod_more_trigger"> 

应该是

<a class="prod_more_trigger"> 

因为你在你的JS

您使用类选择需要不要创建一个局部变量i来分配一个值。 $.each传递索引。而你并不需要嵌套事件处理程序$.each循环内

代码

$(document).ready(function() { 
    // Cache your selectors when using multiple times 
    var $content = $('span.contentShow'), 
     $trigger = $('a.prod_more_trigger'); 
    $content.each(function (i) { 
     $(this).attr('data-id', i); 
    }); 
    // This can be outside the loop 
    $content.hide(); 

    $trigger.each(function (i) { 
     $(this).attr('data-id', i); 
    }); 

    $trigger.click(function() { 
     var $span = $('span.content[data-id="' + $(this).attr('data-id') + '"]'); 
     $content.toggle('fast'); 
    }); 
}); 

Check Fiddle

+0

太好了,谢谢! - 如果我只想将show/hide函数应用于正在被单击的特定实例,我是否需要为每个增量分配特定的ID? – MikeDre

+0

很高兴有帮助.. :)当然应该做 –

0

您指定prod_more_trigger作为ID代码,它应该是

HTML

<span class="contentShow" >Dropdown Text Here...</span> 
<a class="prod_more_trigger" ><span>More...</span></a> 
+1

谢谢!希望我注意到这(这是一个深夜哈) – MikeDre