每个问题()

时间:2011-04-14 17:27:34

标签: jquery each

我想在每个.item的末尾插入一个链接。

一切正常但我在每个元素后得到7个链接的打印输出。
如何在每个.item之后获得相关链接?
非常感谢你!

$('#content .item img').each(function(i) {
    var altText = $(this).attr("alt");
    $('<br /><a href="' + altText + '">visit website</a>').insertAfter('.imagefield');
});

2 个答案:

答案 0 :(得分:2)

将您的选择器更改为仅查找#content .item,而不是其中的图像。据推测,你正在迭代.item内的任何嵌套图像(看起来似乎是7)

请记住,每个人都会找到选择器的所有匹配项。如果您的目的只是使用.item,那么您需要具体,只需选择.item(不是嵌套元素)。

在我面前没有HTML,我建议:

$('#content .item').each(function(i,e){
  $(e).append('<br /><a href="' + $('img',e).attr('alt')+ '">visit website</a>');
});

答案 1 :(得分:0)

您正在调用insertAfter('.imagefield'),它将找到所有.imagefield元素,并在它们之后插入一个链接 - 用于每个图像。试试insertAfter(this)