replace正文中的文字

有没有一种方法来replace放在HTML正文中的表元素中的正常文本?

喜欢用“你好”replace“你好”?

请只使用没有jQuery的 JavaScript

要将HTML中的stringreplace为另一个string,请使用innerHTML上的replace方法:

document.body.innerHTML = document.body.innerHTML.replace('hello', 'hi'); 

请注意,这将代替整个正文中的第一个hello实例,包括HTML代码中的任何实例(例如类名称等),所以请谨慎使用 – 为了获得更好的结果,请尝试通过定位代码来限制replace的范围使用document.getElementById或类似的。

要replace目标string的所有实例,请使用带有g lobal标志的简单正则expression式:

 document.body.innerHTML = document.body.innerHTML.replace(/hello/g, 'hi'); 

下面的function对我来说是完美的:

 // Note this *is* JQuery, see below for JS solution instead function replaceText(selector, text, newText, flags) { var matcher = new RegExp(text, flags); $(selector).each(function () { var $this = $(this); if (!$this.children().length) $this.text($this.text().replace(matcher, newText)); }); } 

这是一个用法示例:

 function replaceAllText() { replaceText('*', 'hello', 'hi', 'g'); } $(document).ready(replaceAllText); $('html').ajaxStop(replaceAllText); 

你也可以使用直接replace,如下所示:

 document.body.innerHTML = document.body.innerHTML.replace('hello', 'hi'); 

但要小心,因为它可能会影响标签,CSS和脚本。

编辑:至于纯粹的JavaScript解决scheme使用这种方法:

 function replaceText(selector, text, newText, flags) { var matcher = new RegExp(text, flags); var elems = document.querySelectorAll(selector), i; for (i = 0; i < elems.length; i++) if (!elems[i].childNodes.length) elems[i].innerHTML = elems[i].innerHTML.replace(matcher, newText); } 

我有同样的问题。 我写了自己的函数使用innerHTMLreplace,但它会搞砸锚链接等。

为了使它正常工作,我用一个库来完成这个工作。

图书馆有一个很棒的API。 包括脚本后,我这样调用它:

 findAndReplaceDOMText(document.body, { find: 'texttofind', replace: 'texttoreplace' } ); 

我试图replace一个非常大的string,由于某种原因正则expression式抛出一些错误/exception。

所以我发现这个正则expression式的替代方法也运行得非常快。 至less对我来说足够快了:

 var search = "search string"; var replacement = "replacement string"; document.body.innerHTML = document.body.innerHTML.split(search).join(replacement) 

src: 如何在JavaScript中replace所有的string?

使用默认的JavaScriptstringreplacefunction

 var curInnerHTML = document.body.innerHTML; curInnerHTML = curInnerHTML.replace("hello", "hi"); document.body.innerHTML = curInnerHTML; 

我是新来的Javascript和刚开始学习这些技能。 请检查下面的方法是否有用replace文本。

 <script> var txt=document.getElementById("demo").innerHTML; var pos = txt.replace(/Hello/g, "hi") document.getElementById("demo").innerHTML = pos; </script>