所以,我有一个包含15个链接的数组,我想将它们作为img src传递给我的html元素。我的元素都是阶级的。卡,我想我会写一个循环而不是硬编码(我必须用不同的链接做45次)。
所以它看起来像这样
var picks1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15];
for(x=0;x<picks1.length;x++) {
$(".card:eq(x)").src = "picks1[x]";
}
有没有办法像这样做?我认为这不起作用,因为.card:eq(x)的引号。 (有45个选择阵列,它们的长度从1到15变化)。还有另一种方法吗?
这是一个更大的网页的一部分,如果需要可以发布源代码,基本上是它读取另一个程序制作的日志文件,然后从第三方网站链接到图像并将它们放入数组中。
答案 0 :(得分:2)
虽然以上所有答案都是正确的,但我认为缓存$('.card')
的价值会更好
var picks1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15];
$(".card").slice(0, picks1.length).attr('src', function (i) {
return picks1[i]
})
注意:如果.slice(0, picks1.length)
和$(".card")
的长度相同,则不需要picks1
答案 1 :(得分:1)
假设你有一个pickArray有45个长度为1-15的数组。你可以写这样的
var i=0, length = pickArray.length, j=0, arrLen=0, arr;
for(;i<length;i++){
arr = pickArray[i];
arrLen = arr.length;
for(j=0;j<arrLen;j++) {
$(".card:eq("+j+")").src = arr[j];
}
}
答案 2 :(得分:0)
您可以使用+
- 运算符将变量插入到选择器字符串中:
var picks1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15];
for(x=0;x<picks1.length;x++) {
$(".card:eq(" + x + ")").src = picks1[x];
// OR
$(".card").eq(x).attr('src', picks1[x]);
}
答案 3 :(得分:0)
var picks1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15];
var cards = $(".card");
for (x = 0; x < picks1.length; x++) {
cards.eq(x).attr('src', picks1[x]);
}
答案 4 :(得分:0)
您将picks1 [x]的值设置为字符串,尝试删除引号。使用以下代码
var picks1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15];
for(x=0;x<picks1.length;x++) {
$(".card").eq(x).src = picks1[x];
}
或者将它与attr()函数一起使用
$(".card").eq(x).attr('src',picks1[x]);
希望这有助于你