我正在尝试使用jQuery将Degree Celsius ℉
值添加到属性中。
$("#degree-toggle").attr("value", ℉);

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="button" id="degree-toggle" checked="checked">
&#13;
答案 0 :(得分:0)
您需要先解码HTML实体。它在属性中不起作用:
$("#degree-toggle").attr("value", decodeHtml("℉"));
function decodeHtml(html) {
var txt = document.createElement("textarea");
txt.innerHTML = html;
return txt.value;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="button" id="degree-toggle" checked="checked">
decodeHtml()
功能通过创建隐藏的textarea来工作。然后将需要解码的数据注入到该textarea中,一旦发生这种情况,就可以通过抓取它的“渲染”值来读出。
答案 1 :(得分:0)
$("#degree-toggle").attr("value", $("<div />").html('&').text());
答案 2 :(得分:0)
尝试这个简单的原始实现,从这里开始:
$("#degree-toggle").keyup(function(){
var newval = this.value.replace('°F','');
this.value = newval + '°F';
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id='degree-toggle' />
答案 3 :(得分:-1)
这里有几个问题。首先,您在设置的值周围缺少引号。其次,您使用attr('value')
代替val()
。
然而,更大的问题是val()
不会解码您正在设置的实体。为了实现这一目标,您需要使用<button>
元素,然后设置其html()
,如下所示:
$("#degree-toggle").html('℉');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button type="button" id="degree-toggle"></button>
另请注意,<button>
和<input type="button">
元素都不具有checked
属性。