为什么是® 与jquery一起使用时无法正常工作
我有一个问题我想附加一个按钮的注册商标符号,我希望它用jquery完成,因为有很多很多按钮,当我使用它与html例如(下面)它工作时需要标志。
但是,当我使用如下的jquery时,它返回纯文本:
$('.button_a').each(function(){ $(this).attr("value",$(this).attr("value")+" ®"); });
我不想浪费我的时间和空间来放置®
在所有按钮的值中,所以我希望它在jquery中完成,但我做错了什么。
我知道这是一个缓慢的问题,但请有人在这个问题上帮助我
也可以使用Javascript。
欲了解更多信息,请评论并询问
谢谢….
®
正在呈现为文本字符串,但您可以使用unicode \u00AE
$('.button_a').each(function(){ this.value = this.value +" \u00AE"; });
或者只是®
:
$('.button_a').each(function(){ this.value = this.value +" ®"; });
因为,虽然您正在操作的DOM是从HTML文档初始化的,但您现在处理的是DOM而不是HTML。 您将值写为文本而不是HTML。
您需要使用文字字符( "®"
)或JavaScript转义序列( "\u00AE"
)。
在设置文本框的值之前,必须先对其encode
。
$('.button_a').each(function () { $(this).val("value " + $("").html('®').text()); });
$("
").html('®').text()将返回编码值。
演示: https : //jsfiddle.net/tusharj/t2gwptys/
你需要通过html()
处理内容,因为html实体是由html()
函数操作的,试试这段代码。
$('.button_a').each(function(){ $(this).val($("").html($(this).val()+" ®").html()); });
使用隐藏的div
。
$('.button_a').each(function(){ var decoded = $('').html('®').text(); $(this).val($(this).val() + ' ' + decoded); });
见样品
在你的情况下,普通的js更简单:
$('.button_a').each(function(){ this.value += " ®"; });
– 编辑 – 不幸的是,这仍然是逃脱的,事实上你需要
this.value += " \u00AE";