当使用jQuery动态构建标记时,有时让它返回它作为字符串生成的实际HTML,而不是作为一堆jQuery对象。有没有办法做到这一点?例如,这里:
$("<strong></strong>").text("Hi there!");
我希望能够提取纯文本字符串
"<strong>Hi there!</strong>"
这样我就可以远程缓存它。有没有办法做到这一点?
答案 0 :(得分:3)
您可以使用outerHTML插件。 Here is one:
jQuery.fn.outerHTML = function(s) {
return (s)
? this.before(s).remove()
: jQuery("<p>").append(this.eq(0).clone()).html();
}
用法:
alert($("<strong></strong>").text("foo").outerHTML());
// alerts <strong>foo</strong>
答案 1 :(得分:3)
是的,您可以使用html()函数
即
$("").text("Hi There!").html();
将返回'Hi There!'
请记住,这使用innerHTML,所以
$("<div><b>Foo</b></div>").html();
将返回
<b>Foo</b>
因此,您需要将代码包装在周围的div或span中。
答案 2 :(得分:1)
只需调用.html()即可从任何元素中获取HTML,包括生成的元素。这来自Chrome开发人员工具会话:
> $("<div><span>blerg</span></div>")
Object
> $("<div><span>blerg</span></div>").html()
<span>blerg</span>
你可以看到,第一个返回一个对象,第二个返回文本。