为什么JQuery只在封装在其他标签中时才显示HTML字符?

时间:2013-11-03 21:21:38

标签: jquery html utf-16

我很好奇为什么这个JQuery呈现完整的块HTML字符:

var html = $('<div>&#9608;</div>');
$("body").append(html)

但这不是:

var html = $('&#9608;');
$("body").append(html)

有没有办法在不包含标签的情况下呈现一个特殊字符(通过HTML或十六进制)?

JSFiddle:http://jsfiddle.net/G2Km8/2/

2 个答案:

答案 0 :(得分:3)

我认为这是因为JQuery将您的第二种情况视为CSS选择器而不是HTML片段。因为你可能没有任何符合“&amp;#6908;”的元素在你的文档中,你基本上是在你的身体上附加一组空元素。

尝试直接使用

$("body").append('&#9608');

这可以防止JQuery猜测你的字符串是否是HTML片段或CSS选择器。传递String时,append方法假定它是一个HTML片段。

答案 1 :(得分:3)

您不需要var

的$符号

检查一下:

<强> http://jsfiddle.net/G2Km8/4/

$(document).ready(function(){
  $("button").click(function(){
    var html = "&#9608;";
    $("body").append(html);
  });
});