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

use*_*747 5 html jquery utf-16

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

var html = $('<div>&#9608;</div>');
$("body").append(html)
Run Code Online (Sandbox Code Playgroud)

但这不是:

var html = $('&#9608;');
$("body").append(html)
Run Code Online (Sandbox Code Playgroud)

有没有办法在没有封闭标签的情况下渲染一个特殊字符(通过HTML或十六进制)?

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

Lor*_*igs 3

我认为这是因为 JQuery 将第二种情况视为 CSS 选择器而不是 HTML 片段。因为您可能没有任何与“᫼”匹配的元素 在您的文档中,您基本上是在正文中附加一组空元素。

尝试直接使用

$("body").append('&#9608');
Run Code Online (Sandbox Code Playgroud)

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