ID解析然后使用选择器

问题描述:

所以我有这个有趣的小问题,我想解析图像的ID。没有太复杂......但奇怪的是,我的代码似乎不能正常工作。这很奇怪。有没有人可以解释这一点?我对自己无法看到错误感到失望。ID解析然后使用选择器

下面是无法工作的相关代码片段:

 //Toggling images using img-index variable. 
     img-index = 0; 
     img-src[0] = $("#ppsfb").attr("id"); 
     img-src[1] = $("#gty").attr("id"); 

     $("#cycle").click(function(){ 
      //Since img-index is just a counter. 
      if (img-index < 2){ 
      img-index = img-index + 1; 
      } else {img-index = 0;}       

      $(img-src[img-index]).fadeIn(1000);    
     }); 
+0

无效变量的名称,应该是'[A-ZA-Z _ $] [0-9A-ZA-Z _ $] *' – 2011-12-25 03:56:21

img-src不是JavaScript的一个有效的标识符。这可能是失败的原因。

退房this fiddle并注意Unexpected token -错误

img-index不是在JavaScript中有效的变量名,你可能想使用img_indeximgIndex。另外,对来自ID选择器的东西调用attr('id')毫无意义,$("#ppsfb").attr("id")'ppsfb'或什么都不是。你可能更适合在img_src中存储整个jQuery对象,即使在解决命名问题后,你的$(img-src[img-index])也不会做你想做的事情。此外,您可能想要在显示新图像之前隐藏或淡出当前图像。

img_index = 0; 
img_src[0] = $('#ppsfb'); 
img_src[1] = $('#gty'); 

$("#cycle").click(function(){ 
    img_src[img_index].hide() // Or .fadeOut or ... 
    if(img_index < 2) 
     img_index = img_index + 1; 
    else 
     img_index = 0; 
    img_src[img_index].fadeIn(1000);    
}); 

想必你的定位,堆垛等已经整理出来。

+0

笑,我觉得这么愚蠢。并不是我没有经历过。我只是混淆了HTML和Javascript中的有效名称类型。我总是用Javascript做出不好的假设(因为它是如此多才多艺)。 – 2011-12-25 03:59:21