使用jQuery更改段落中的符号

时间:2017-11-04 10:39:58

标签: javascript jquery ascii symbols

当某些事件发生时,我正在尝试替换段落末尾的符号。原始符号是一个方框☐我在代码中使用它的ASCII。

示例段落将是问题编号:1☐

此符号将替换为方框内的符号,其中包含十字☒

SO最后一段想要问题编号:1☒

更改结束符号的例程如下:

$(document).on("change", 'input[type=radio]', function (e) {
   e.preventDefault();
   var x = $(this).attr('id');
   var y = x.substring(17);
   var z = $("#QuestionBankLink"+y).text();
   var a = z.substring(0,13);
   var b = a + " ☒";
   $("#QuestionBankLink"+y).text(b);
});

正如可以理解段落的id是QuestionBankLink后跟一个数字(基本上是参考)

现在我的问题是当代码执行时一切正常,除了最后我得到ASCII的完整字符集而不是符号这一事实。所以我得到的是:

问题编号:1☒

我哪里错了?

3 个答案:

答案 0 :(得分:2)

$("#QuestionBankLink"+y).text(b);更改为$("#QuestionBankLink"+y).html(b);

.text()方法完全按照字符串中的方式注入文本,包含所有标记和实体

答案 1 :(得分:1)

您不需要获取子字符串来查找字符并替换。在Jquery replace函数中,您可以直接提供替换字符,如下所示。

$("#QuestionBankLink"+y).text($("#QuestionBankLink"+y).text().replace('☐','☒'));

我附上了

下面的演示片段



$(document).ready(function() {
  $('#replace').click(function(){
    $("p").text($("p").text().replace('☐','☒'));
  });
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p>
Problem No:1 ☐
</p>
<button id='replace'>
Replace
</button>
&#13;
&#13;
&#13;

答案 2 :(得分:1)

而不是" &#9746;"(或在hexadeciaml " &#x2612;"中)

使用" ☒"" \u2612"

&#9746;是HTML十进制数字字符实体引用。 HTML中的字符是Unicode代码点。

"\u2612"是针对UTF-16代码单元的JavaScript转义literal。 UTF-16是Unicode字符集的字符编码。

"☒"是一个JavaScript文字。如果您的编辑器,保存的文件编码,可选的HTML元字符集标记,服务器的HTTP内容类型字符集标题全部排列在例如UTF-8上,这将是有效的。这应该不是问题。

当然,作为Unicode字符的☒也可以在HTML中使用。