.attr中的jQuery函数仅对所有匹配的标记调用一次

时间:2009-10-08 00:27:56

标签: jquery

我正在通过编写内存游戏来教自己jQuery(你可以一次翻转两个瓷砖,寻找匹配)。

我有16个img标签,每个标签代表一个平铺面。我有一个16个jpg文件名的数组。我想将每个img标记的src属性设置为我的数组中的随机选择。为此,我编写了一个函数,从数组中提取字符串,从数组中删除字符串,然后返回字符串。然后我以这种方式在onReady处理程序中使用此函数:

$('.picture').attr( {src : extractArrayValue(cousinPictures)});

这似乎有效,除了看起来函数extractArrayValue似乎只在所有16个标签中被调用一次。所有16个img标签都获得相同的图像,但如果我刷新页面,则会得到不同的相同的16个图像文件。

我对正在发生的事情是否正确?并且,如果是这样,是否有一种直接的方法来强制extractArrayValue为每个被设置的属性调用?

2 个答案:

答案 0 :(得分:5)

您只需要枚举图片即可。

$('.picture').each(function() {
    this.src = extractArrayValue(cousinPictures); 
});

如果您想了解为什么'this'是图片,请查看此链接。

function.apply(this_context, arguments)

答案 1 :(得分:1)

您可能需要通过每个函数运行它,可能会提供更多代码,但我认为您需要:

$('.picture').each(function(){
    $(this).attr({src: extractArrayValue(cousinPictures)});
});