迭代数组的多个jQuery命令

时间:2012-12-13 18:50:21

标签: javascript jquery arrays loops

我得到了以下jQuery的东西,我用脚输入数组编号和选择器位置 - 我可以在一个带有for循环的块中执行此操作吗?

jQuery(document).ready(function(){

    jQuery('.hoverB0x:eq(0)').html('<a style="background:white;" class="imageLink" href="${createLink(uri: "/beirat/")}">Profil von' + names[0]+'</a>');
    jQuery('div.name:eq(0)').html(title[0]+' '+names[0]);
    jQuery('div.description:eq(0)').html(funktion[0]);
    jQuery('a.imageLink:eq(0)').prop('href', 'beirat/'+ident[0]);
    jQuery('a.contentLink:eq(0)').prop('href', 'beirat/'+ident[0]);
    jQuery('.profilBildInner:eq(0) img').attr('src', base+ident[0]+'.png');

现在大约有10个街区将跟进eq([arrayPos])和names / ident [arrayPos]

3 个答案:

答案 0 :(得分:2)

是的,当然:

for (var i = 0; i < 3; i++){
    $('.hoverB0x:eq(' + i + ')').html('<a style="background:white;" class="imageLink" href="${createLink(uri: "/beirat/")}">Profil von' + names[i]+'</a>');
    $('div.name:eq(' + i + ')').html(title[i]+' '+names[i]);
    $('div.description:eq(' + i + ')').html(funktion[i]);
    $('a.imageLink:eq(' + i + ')').prop('href', 'beirat/'+ident[i]);
    $('a.contentLink:eq(' + i + ')').prop('href', 'beirat/'+ident[i]);
    $('.profilBildInner:eq(' + i + ') img').attr('src', base+ident[i]+'.png');

}

答案 1 :(得分:2)

使用for循环:

for (var i = 0; i < 3; i++) {
    jQuery('.hoverB0x:eq(' + i + ')').html('<a style="background:white;" class="imageLink" href="${createLink(uri: "/beirat/")}">Profil von' + names[i] + '</a>');
    jQuery('div.name:eq(' + i + ')').html(title[i] + ' ' + names[i]);
    jQuery('div.description:eq(' + i + ')').html(funktion[i]);
    jQuery('a.imageLink:eq(' + i + ')').prop('href', 'beirat/' + ident[i]);
    jQuery('a.contentLink:eq(' + i + ')').prop('href', 'beirat/' + ident[i]);
    jQuery('.profilBildInner:eq(' + i + ') img').attr('src', base + ident[i] + '.png');
}

答案 2 :(得分:2)

我不明白为什么不...只是更改索引以使用for循环的增量计数器。您没有显示如何获得namesidentfunktion数组但可以推测它们的大小相同并且保留了您在文档中所期望的事物的正确数量,因此请使用其中一个获得基本增量范围。

for (var i = 0; i < ident.length; i++){
    $('.hoverB0x:eq(' + i + ')').html('<a style="background:white;" class="imageLink" href="${createLink(uri: "/beirat/")}">Profil von' + names[i]+'</a>');
    $('div.name:eq(' + i + ')').html(title[i]+' '+names[i]);
    $('div.description:eq(' + i + ')').html(funktion[i]);
    $('a.imageLink:eq(' + i + ')').prop('href', 'beirat/'+ident[i]);
    $('a.contentLink:eq(' + i + ')').prop('href', 'beirat/'+ident[i]);
    $('.profilBildInner:eq(' + i + ') img').attr('src', base+ident[i]+'.png');

}

如果可能的话,将这些数组组合成一个单独的hahses数组会更有意义:

var values = [
  {ident: 'ident_value', funktion: 'function_value', name: 'name_value'}
];

然后你可以这样做:

for (var i = 0; i < values.length; i++){
    $('.hoverB0x:eq(' + i + ')').html('<a style="background:white;" class="imageLink" href="${createLink(uri: "/beirat/")}">Profil von' + values[i].name+'</a>');
    $('div.name:eq(' + i + ')').html(title[i]+' '+values[i].name);
    $('div.description:eq(' + i + ')').html(values[i].funktion);
    $('a.imageLink:eq(' + i + ')').prop('href', 'beirat/'+values[i].ident);
    $('a.contentLink:eq(' + i + ')').prop('href', 'beirat/'+values[i].ident);
    $('.profilBildInner:eq(' + i + ') img').attr('src', base+values[i].ident+'.png');

}