Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/473.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用jQuery查找文本并替换_Javascript_Jquery_Replace - Fatal编程技术网

Javascript 如何使用jQuery查找文本并替换

Javascript 如何使用jQuery查找文本并替换,javascript,jquery,replace,Javascript,Jquery,Replace,我试图找到一个解决方案来搜索DOM中包含的文本字符串“Tony”,并用文本字符串“Tiger”替换它 有人对如何做到这一点有什么见解或想法吗?我猜它将需要一个each语句和一个replace函数,并且可能包含 谢谢 杰克页面范围内,您可以使用以下内容: var $body = $('body'); var html = $body.html(); var newHtml = html.replace('Tony', 'Tiger'); $body.html(newHtml); 或者,如果您有一

我试图找到一个解决方案来搜索DOM中包含的文本字符串“Tony”,并用文本字符串“Tiger”替换它

有人对如何做到这一点有什么见解或想法吗?我猜它将需要一个each语句和一个replace函数,并且可能包含

谢谢
杰克

页面范围内,您可以使用以下内容:

var $body = $('body');
var html = $body.html();
var newHtml = html.replace('Tony', 'Tiger');
$body.html(newHtml);
或者,如果您有一个更具体的容器,则使用jQuery选择该子容器并执行相同的操作


不管怎样,这都是一种猎枪式的方法。它将更改可见文本和html元素属性中的字符串。如果需要在某些位置忽略字符串,则可能需要更详细的方法。

您可以使用此方法搜索body元素的所有子元素并替换文本

$('body').children().each(function(){$(this).text( $(this).text().replace('Tony','Tiger') )});
它使用jQuery。它还应该只改变元素的文本内容,而不改变HTML格式

您还可以使用此方法,该方法使用RegExp并将获取所有嵌套元素:

 $('body').html( $('body').html().replace(/Tony/gi,'tiger') );

是否可以将其与服务器端解决方案相结合?您可以使用一个特殊的类来包装word服务器端的每一次出现,如
texttoreplace


在生成的类上运行javascript替换只会加快速度。

请提供更多详细信息。你知道它可能在DOM中的什么位置吗?你想用
Tiger
替换每次出现的
Tony
吗,不管它出现在哪里?你想用html容器吗??或者它的直接替换allYes,我想用“Tiger”替换出现的每个“Tony”—在DOM中它所在的地方—可能必须在.container元素中。您可能应该澄清一下,但我假设您只想替换包含字符串“Tony”的文本节点。。。i、 e.如果它出现在属性中,则不要替换它。这将不起作用,因为
children()
不会递归搜索DOM-它只会给您直接的子项。它在我的页面上不起作用:$('.container').children().each(function(){$(this).text($(this).text().replace('Laithwaites','Tiger')));-它正在删除或破坏所有DOM。@jrutter:不知道为什么在没有看到代码的情况下会发生这种情况。但是,我已经使用RegExp方法升级了我的解决方案-->$('body').html($('body').html().replace(/Tony/gi,'tiger'));我对它进行了测试,即使项目被嵌套多次,它也能正常工作。如果这是可能的话,他为什么不首先替换服务器端的字符串呢?添加不必要的dom元素似乎太过分了