jQuery .each(),. find()和.append()只在最后一个节点上工作?

时间:2012-06-09 12:58:05

标签: javascript jquery dom-manipulation

我正在使用jQuery编写Greasemonkey用户脚本。代码段影响论坛帖子页面,并打算在每个帖子的页脚附加一个按钮。

假设按钮已经是jQuery元素$button,这是我的代码:

$('table.posts').each(function() {
    //get the name of the poster
    profileName = $(this).find('.user').text();
    //change the link relative to each poster
    $button.attr('href', '/search?user=' + profileName);
    //This is the problematic line:
    $(this).find('div.postFooter').append($button); 
});

我已使用警报测试了profileName的值,并成功迭代并警告配置文件名称,但它只将按钮附加到最后一个帖子的页脚(使用正确的链接)。

我尝试使用各种不同的选择器和方法将DOM遍历到所需的元素,但所有方法都产生了相同的结果。我没有想法。

1 个答案:

答案 0 :(得分:3)

使用clone

$(this).find('div.postFooter').append($button.clone(true)); 

每当您更改并附加相同的 $button元素时。