我使用下面的代码更改页面上的某些文字。它的工作正常,但它只会改变单个单词。当我想要更改整个句子时,代码会出错。你能帮帮我吗我用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);
});
答案 0 :(得分:0)
您遇到的错误不是由于单词/句子造成的。这是因为您的HTML在单词Unlimited周围有粗体标签。因此,它无法找到匹配的"将在无限制"中过期的字符串。如果HTML的最后一行如下所示:
<span>1d 2d will expire in Unlimited</span>
我不知道你想要的最终结果是什么,但这个小提琴取代了整个字符串: http://jsfiddle.net/2pg8vwtr/2/
祝你好运。