如何使用jquery / javascript更改文本

时间:2015-03-10 20:33:22

标签: javascript jquery

我使用下面的代码更改页面上的某些文字。它的工作正常,但它只会改变单个单词。当我想要更改整个句子时,代码会出错。你能帮帮我吗我用javascript / jquery不太好。感谢。

$(document).ready(function() { 
    function recursiveReplace(node) {
        if (node.nodeType == 3) { // text node
            node.nodeValue = node.nodeValue.replace("1d", "1 day");
            node.nodeValue = node.nodeValue.replace("2d", "2 days");
            node.nodeValue = node.nodeValue.replace("will expire in Unlimited", "will not expire");
            return;
        }

        if (node.nodeType == 1) { // element
            $(node).contents().each(function () {
                recursiveReplace(this);
            });
        }
    }

    recursiveReplace(document.body);
});

1 个答案:

答案 0 :(得分:0)

您遇到的错误不是由于单词/句子造成的。这是因为您的HTML在单词Unlimited周围有粗体标签。因此,它无法找到匹配的"将在无限制"中过期的字符串。如果HTML的最后一行如下所示:

<span>1d 2d will expire in Unlimited</span>

我不知道你想要的最终结果是什么,但这个小提琴取代了整个字符串: http://jsfiddle.net/2pg8vwtr/2/

祝你好运。