-1

我得到了以下 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]

4

3 回答 3

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');

}
于 2012-12-13T18:53:49.723 回答
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');
}
于 2012-12-13T18:53:52.313 回答
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');

}
于 2012-12-13T18:54:53.060 回答