我的页面上有“可丽耐”字样。在很多时候。
我必须用Corain @reg替换它; (获得注册商标)
我尝试了jQuery("Corian®").replaceAll("Corian");
,但它无法正常工作。
我应该尝试什么
答案 0 :(得分:1)
希望这能解决您的问题。
$("span, p, div").each(function() {
var text = $(this).html();
text = text.replace("Corian", "Corian®");
$(this).html(text);
});
答案 1 :(得分:0)
首先获取html使用替换为/ text / g并再次将html指定给body。在呈现®
®
代替®
<强> Live Demo 强>
html = $("body").html().replace(/Corian®/g, 'Corian');
$('body').html(html);
答案 2 :(得分:0)
您可以循环遍历body元素的所有子元素并使用简单的正则表达式替换:
$("body").children().each(function() {
$(this).html().replace( /Corian/g, "Corian®");
});
答案 3 :(得分:0)
所以这是一个解决方案,它枚举文档的文本节点并替换文本。
我这样做的原因是,如果你交换整个HTML,你将丢失文档中的所有绑定事件和数据 - 因为你实质上是在替换整个文档 - 打破一切。
免费小提琴:https://jsfiddle.net/x51uzqfw/2/
重要提示: 提供的JavaScript不在
<body>
。它必须位于外部文件中,因为替换方法将替换“可丽耐”字样。也在JavaScript中。
JS
$('button').on('click', function() {
alert('event');
});
function unescapeHtml(value) {
var temp = document.createElement("div");
temp.innerHTML = value;
var result = temp.childNodes[0].nodeValue;
temp.removeChild(temp.firstChild);
return result;
}
function recurseReplace(parentNode) {
var count = parentNode.childNodes.length;
for (var i = 0; i < count; i++) {
var node = parentNode.childNodes[i];
if (node.nodeType == Node.TEXT_NODE) {
node.nodeValue = node.nodeValue.replace('Corian', unescapeHtml('Corian ®'))
}
recurseReplace(node);
}
}
recurseReplace(document);
HTML
Corian
<div>
<button type="button">
I have an event! Corian
</button>
<div>Corian</div>
<div>Corian</div>
<div>Corian
<div>Corian</div>
</div>
</div>
Corian
修改强>
我做了一个更改,因为我意识到这没有考虑<body>
根目录中的文本节点。
答案 4 :(得分:-1)
首先,您必须通过选择器进行选择(在您的情况下,您已尝试使用不是jquery选择器的Corian®)。
$("body").html(($("body").html().replace('Corian', 'Corian®'));
获取body的所有html并用jquery replace函数替换它。