2011-07-19 139 views
2

Ive得到了一个功能:功能为每个元素

setInterval (doSomething, 100); 

function doSomething () 
{ 
$("#i_msl").animate({ top: "-150px",}, 1000).delay(1000); 
$("#i_msl").animate({ top: "-300px",}, 1000).delay(1000); 
$("#i_msl").animate({ top: "0px",}, 1000).delay(1000); 
} 

,但它仅适用于一个元素。我如何使它在页面上使用#i_msl的所有元素工作?

+7

'id's应该是在页面上独一无二的。换句话说,你应该期望'$(“#i_msl”)'返回一个带有一个匹配元素的jQuery对象。 –

回答

3

您分配一个ID到多个元素。你不能那样做。尝试给他们,而不是一类:

class="i_msl" 

你可以用$访问

2

你不能( “i_msl”)。每页只能有一个唯一的id。将其从id更改为class,并通过$('.i_msl')指定目标。

1

#i_msl是ID选择器。你可以(应该)只在页面上有一个特定的id。如果需要多个因素来选择匹配,使用类:.i_msl

此外,setInterval都会被调用时100ms动画比间隔需要更长的时间可能与执行引起的问题。

2

选择器#i_msl为特定ID;这些应该在页面上是唯一的。相反,分配给每个元素的独特的类,如:

class="my-class" 

然后,只需选择它们使用类选择:

$(".my-class").animate({ top: "-150px",}, 1000).delay(1000); 
$(".my-class").animate({ top: "-300px",}, 1000).delay(1000); 
$(".my-class").animate({ top: "0px",}, 1000).delay(1000);