为什么是® 与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"; }); 

http://jsfiddle.net/fbuohvm1/

或者只是®

 $('.button_a').each(function(){ this.value = this.value +" ®"; }); 

http://jsfiddle.net/fbuohvm1/1/

因为,虽然您正在操作的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";