3

我正在尝试搜索和替换正文中具有相同名称的文本,但它是部分工作,一些文本正在被替换,但一些旧文本仍然出现,不太确定发生了什么上。

$(document).ready(function() {
    $('*').each(function(){
        if($(this).children().length == 0) 
            $(this).text($(this).text().replace("old text", "replace with new text"));
        });
});

非常感谢您的帮助

谢谢

4

1 回答 1

5

使用:contains伪类选择器查找包含该文本的任何元素,然后从那里替换。

$(":contains('old text')").each(function(){
    $(this).text($(this).text().replace('old text', 'new text'));
});

如果您知道要定位的元素列表,另一种解决方案是首先找到这些元素,然后使用 :contains 过滤它们。

$('div, p, a, span').filter(":contains('old text')").each(function(){
    $(this).text($(this).text().replace('old text', 'new text'));
});
于 2012-05-03T23:32:38.997 回答