创建的jQuery元素不解析`text`参数中的标签

时间:2012-05-17 15:50:36

标签: jquery html

我正在用这样的jQuery创建一些元素 -

var div1 = $('<div />', {text: "Specials of <b>the searched text</b>"}).attr({"class": "spcl-thmb-hdr"});
div1.appendTo(li2); // appending to a <li /> tag

但是当它们加载时,它们只是不解析<b />标记。并打印出这样的东西 -

<div class="spcl-thmb-hdr">Specials of &lt;b&gt;the searched text&lt;/b&gt;</div>

如何解析text参数中的标记?

1 个答案:

答案 0 :(得分:1)

您需要使用html代替text才能将字符串视为HTML,否则将对其进行编码。

您传递到$的地图可以包含属性,您也可以替换attr来电,如下所示:

$('<div />', {
    html: "Specials of <b>the searched text</b>",
    "class": "spcl-thmb-hdr"
});

来自the jQuery docs

  

从jQuery 1.4开始,jQuery()的第二个参数可以接受一个映射,该映射由可以传递给.attr()方法的属性的超集组成。此外,可以传入任何event type,并且可以调用以下jQuery方法:valcsshtmltext,{{3} },datawidthheight。必须在地图中引用名称"class",因为它是一个JavaScript保留字,并且"className"无法使用,因为它不是正确的属性名称。