我正在尝试使用jquery为图片库分页。我使用的图像目录包含大约600张图像,命名如下:“photo1.jpg”...“photo(n).jpg”...“photo600.jpg”。如何将参数发送到Jquery中的每个函数
假设我有一个变量持有页码var page
,每个虚拟页面上有40个图像。我想要做的事情如下:
for (var i = 0; i<40; i++){
var imageNum = (((page*40)-40)+i+1);
$("img")[i].attr("src","photo"+ imageNum + ".jpg"); // Doesn't work
}
}
这是hackish,但你看到我想做什么? jquery API有some info on using each()迭代通过jquery对象,但我无法弄清楚如何发送每个函数的一个参数,其中包含关于哪个页面的数据,我需要确定图像的路径。我要的东西,如:
$("img").each(function (i) {
//code to update image paths based on page parameter
});
我打开不同的方法为好,我是一个总的小白,我觉得我可能要对这个错误的方式来开始:S。
编辑 感谢大家的回答。
如果你正在寻找一个快速和简单的答案,使用each(),看看杰夫B的答案。
我接受了帕特里克dw的答案,因为它更详细地介绍了我正在制作的一个单独的错误,并介绍了另一种方法。另外,如果您和我一样,并且认为您需要将参数传递给.each(),请参阅我们对他的回复的评论。
1为那些商标上标[docs]链接。你应该注册这些。 – Raynos 2011-05-18 17:16:09
帕特里克,我非常喜欢你提供的替代解决方案,非常干净! 不幸的是,对于任何发现这条线索的人来说,他们可能会和我一样对范围感到困惑。 我错误的印象是,我需要将'page'传递给每个函数 - 显然你没有。 'page'在你的替代解决方案和Jeff B给出的解决方案中都可用,它不需要被传递给被称为每个参数的函数。 与回调和函数被调用的顺序有关吗?我需要阅读更多。我是新来jquery(和JavaScript)。 :) – 2011-05-18 17:20:02