我试图找到一个解决方案来搜索DOM中包含的文本字符串“Tony”,并用文本字符串“Tiger”替换它。
任何人都有任何关于如何做到这一点的见解或想法?我猜它会将每个语句与一个替换函数结合起来并且可能包含?
由于 杰克
答案 0 :(得分:17)
您可以使用它来搜索body元素的所有子元素并替换文本...
$('body').children().each(function(){$(this).text( $(this).text().replace('Tony','Tiger') )});
它使用jQuery。它也应该只改变元素的文本内容而不改变HTML格式......
您也可以使用此方法使用RegExp并获取所有嵌套元素:
$('body').html( $('body').html().replace(/Tony/gi,'tiger') );
答案 1 :(得分:4)
页面范围内,您可以使用以下内容:
var $body = $('body');
var html = $body.html();
var newHtml = html.replace('Tony', 'Tiger');
$body.html(newHtml);
或者,如果你有一个更具体的容器,使用jQuery来选择那个子容器并做同样的事情。
无论哪种方式,它都是一种霰弹枪方法。它将更改可见文本和html元素属性中的字符串。如果在某些位置需要忽略字符串,则可能需要更详细的方法。
答案 2 :(得分:2)
是否可以将其与服务器端解决方案相结合?你可以用一个特殊的类来包装单词服务器端的每个出现,比如<span class="replaceme">texttoreplace</span>
。
仅在结果类上运行javascript替换应该可以加快速度。