我们如何使用jQuery将字符的十进制值添加到属性中

时间:2018-01-23 11:42:27

标签: javascript jquery html css

我正在尝试使用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;
&#13;
&#13;

4 个答案:

答案 0 :(得分:0)

您需要先解码HTML实体。它在属性中不起作用:

$("#degree-toggle").attr("value", decodeHtml("&#8457;"));

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('&amp;').text());

工作笔: https://codepen.io/todorutandrei/pen/OzGgmM

答案 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('&#8457;');
<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属性。