我在大多数页面上都有单词Hello,我想将其更改为Welcome。 是否有可能,如果是,如何用jQuery替换单词?
Hello
<p>Hello user Jack</p>
<div>Hell ow you from us
<h1>12344 Hello</h1>
<div>Hellow</div>
</div>
<script src="jquery-1.5.1.min.js" type="text/javascript"></script>
答案 0 :(得分:3)
好的,这个代码片段会这样做:
$('body, body *')
.contents()
.filter(function() {
return this.nodeType == Node.TEXT_NODE
&& this.nodeValue.indexOf('Hello') >= 0;
}).each(function() {
this.nodeValue = this.nodeValue.replace(/\bHello\b/g, 'Welcome');
});
我真的不建议使用它,但很高兴知道这可能会在紧要关头。
通过查找其中包含“Hello”的所有文本节点,然后使用正则表达式对每个文本节点的“Hello”和“Welcome”进行全局替换。
答案 1 :(得分:2)
永久?你最好只进行搜索并替换多个文件。
答案 2 :(得分:2)
$(document).ready( function() {
$('.title').html('Welcome');
});
我猜这里是它自己的标签。如果你需要更多(你好是句子的一部分)那么你需要使用类似$('。title')的东西。替换('你好','欢迎')
编辑:这是我目前的思路,我有点忙,所以我想我会把它丢掉以防万一你可以插入最后一块:
function scanReplace($element) {
$element.children().each(function() {
var $this = $(this);
$this.text().replace('Hello','Welcome');
if ( $this.children().length > 0 ) scanReplace($this);
});
}
scanReplace($('body'));
答案 3 :(得分:1)
您可以使用.replace
功能替换它。只有您要替换的单词必须是字符串。
var old_line = "Hello World!";
var new_line = old_line.replace('World', 'Stackoverflow');
您还可以替换多个单词,如:
var old_line = "Hello World! Hello World! Hello World! Hello World!";
var new_line = old_line.replace(/World/gi, 'Stackoverflow');
alert(new_line); //Output: Hello Stackoverflow! Hello Stackoverflow! Hello Stackoverflow! Hello Stackoverflow!
答案 4 :(得分:1)
我使用了下面的代码段
$(this).text($(this).text().replace(old_word, new_word));
使用$(this)作为包含要替换的文本的对象
答案 5 :(得分:0)
http://benalman.com/projects/jquery-replacetext-plugin/
可能会发现一些比我们上面的黑客尝试更好的东西。
看一下:)
编辑:这是其工作页面:http://benalman.com/code/projects/jquery-replacetext/examples/replacetext/
显然他们和我们一样走了同样的路线,但是花了更多的时间在它上面,很好,完整:D