Javascript 为什么<;变成&;书信电报;?
我正在尝试将表情符号(图像)的html替换为纯文本。但我需要正常的HTML来显示 在这里: 即时通讯使用:Javascript 为什么<;变成&;书信电报;?,javascript,jquery,replace,Javascript,Jquery,Replace,我正在尝试将表情符号(图像)的html替换为纯文本。但我需要正常的HTML来显示 在这里: 即时通讯使用: $("code").each(function() { var a = ['<img class="smile" src="http://static.yamma.org/images/icons/smile.png">', '<img class="laugh" src="http://static.yamma.org/images/icons/laug
$("code").each(function() {
var a = ['<img class="smile" src="http://static.yamma.org/images/icons/smile.png">', '<img class="laugh" src="http://static.yamma.org/images/icons/laugh.png">'],
b = [":)", ":D"];
for (var d = 0; d < a.length; d++) {
var e = $(this).html(),
f = e,
g = f.indexOf(a[d]);
while (g != -1) {
f = f.replace(a[d], b[d]);
g = f.indexOf(a[d]);
}
$(this).text(f);
}
});
$(“code”)。每个(函数(){
变量a=['',img class=“laugh”src=”http://static.yamma.org/images/icons/laugh.png"'],
b=[“:)”,“:D”];
对于(var d=0;d
它返回:divHi/div:):D::D
;
但是它应该返回:Hi:):D::D
我不明白为什么会被
和
取代
有解决办法吗?提前感谢。我注意到您在for循环的末尾调用了
.text()
,而此时您应该调用.html()
,即使您在开始时正确调用了.html()
:
for (var d = 0; d < a.length; d++) {
var e = $(this).html(),
f = e,
g = f.indexOf(a[d]);
while (g != -1) {
f = f.replace(a[d], b[d]);
g = f.indexOf(a[d]);
}
$(this).text(f);
}
for(var d=0;d
.text()
总是将HTML特殊字符转换为实体,这样它们就不会被视为标记,因为它需要文本,而不是HTML。我注意到您在for循环结束时调用了.text()
,而您应该调用.HTML()
,即使您正确地调用了.HTML()
开头:
for (var d = 0; d < a.length; d++) {
var e = $(this).html(),
f = e,
g = f.indexOf(a[d]);
while (g != -1) {
f = f.replace(a[d], b[d]);
g = f.indexOf(a[d]);
}
$(this).text(f);
}
for(var d=0;d
.text()
始终将HTML特殊字符转换为实体,这样它们就不会被视为标记,因为它需要文本,而不是HTML。有时阅读API会有所帮助:-在调用.text()
时
用其HTML实体等价物替换特殊字符
因此,就像@BoltClock所说的,您在尝试执行的操作中使用了错误的方法。有时阅读API确实有帮助:-在调用
.text()时
用其HTML实体等价物替换特殊字符
因此,就像@BoltClock所说的,您在尝试执行的操作中使用了错误的方法。.html()会呈现代码。所以Hi变成了Hi。我需要它显示为:他的浏览器不应该用.text()
那样显示吗?或者,您的标记可能存在双重编码……这就是问题所在。这就是为什么我发布了这篇文章,以寻求帮助..html()呈现代码。所以Hi变成了Hi。我需要它显示为:他的浏览器不应该用.text()
那样显示吗?或者,您的标记可能存在双重编码……这就是问题所在。这就是为什么我发布了这篇文章,以寻求帮助..html()呈现代码。所以Hi变成了Hi。我需要它显示为:Hithat不修复任何东西(我尝试过)。html()会呈现代码。所以Hi变成了Hi。我需要它显示为:Hithat不能修复任何东西(我尝试过)