用jQuery替换单词

时间:2011-03-29 14:11:12

标签: jquery

我在大多数页面上都有单词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>

6 个答案:

答案 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