jquery查找和替换文本,没有元素id

我正在寻找和替换文本。

我遇到的唯一问题是找到一个文本字符串,它没有附加到带有ID的元素。 否则,这很容易。

我正在尝试这样的事情:

$("*").each(function () { $(this).html(this.html().replace('Original Text','New Text')); }); 

工作不太好。
有没有人遇到过这个?

此外,如果我要查找和替换多个单词或短语,这会如何影响用户浏览器的速度/处理能力? 这是记忆力吗?

 $("*").contents().each(function() { if(this.nodeType == 3) this.nodeValue = this.nodeValue.replace("old", "new"); }); 

Takpar,您的代码也适用。 它似乎阻止了其他一些工作,但只有我动态拉动的项目。 例如,当我使用.ajax() 。 不知道为什么,但这就是我遇到的原因。 我会测试更多。

在相关主题上,Gumbo的代码有效:

 $("*").each(function () { if ($(this).children().length == 0) { $(this).text($(this).text().replace('Subject:','Name:')); } }); 

我遇到的唯一问题是替换页面加载后加载的文本。

我确实有一些javascript函数显示来自服务器的数据,但只有在页面加载了所有元素之后。 例如,用户从下拉列表中选择一个值,该值启动事件以从数据库加载产品列表。

我格式化了一些这样的产品:

 Granny Smith Apples Price: x.xx per pound Nutritional facts.... 

我只想找到一个替换“Price:”这个词,并可能用“Cost:”代替它。

但正如我所提到的,该数据尚未加载。

我必须忍受限制吗?

你为什么不简单地使用:

 $('body').html($('body').html().replace('Original Text','New Text')); 

你想要:contains()选择器。 http://api.jquery.com/contains-selector/

 $("*:contains('Original Text')").each(...); 
 $("*").each(function () { if ($(this).children().length == 0){ $(this).html($(this).html().replace(/Old String/g, "New String")); }});