【问题标题】:problems with each()每个()的问题
【发布时间】:2011-04-15 01:33:40
【问题描述】:

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

一切正常,但在每个元素之后我得到了 7 个链接的打印输出。
我怎样才能在每个.item 之后打印相关链接?
非常感谢!

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

【问题讨论】:

  • 更多代码请。最好是您的 html 示例

标签: jquery each


【解决方案1】:

将您的选择器更改为仅查找 #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>');
});

【讨论】:

  • 此外,如果需要,您可以嵌套另一个 .each() 以处理 .item 匹配中的所有图像。但是,同样,我没有任何 HTML,目前只是在做假设。
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 2011-11-08
    • 1970-01-01
    • 1970-01-01
    • 2011-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-23
    • 2011-05-05
    相关资源
    最近更新 更多