有没有一种方法可以使jQuery输出*实际标记*?

5
使用jQuery动态构建标记时,有时需要将其返回为字符串形式的实际HTML,而不是一堆jQuery对象。有没有办法做到这一点?例如,在此处:
$("<strong></strong>").text("Hi there!");

我希望您能够提取纯文本字符串。
"<strong>Hi there!</strong>"

我希望能够远程缓存它,有办法实现吗?

3个回答

3
你可以使用一个 outerHTML 插件来实现这个功能。 这里有一个插件:
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>

3

是的,您可以使用html()函数

例如:

$("").text("Hi There!").html();

将返回“嗨!”

请记住,这使用innerHTML,因此

$("<div><b>Foo</b></div>").html();

将返回

<b>Foo</b>

作为结果,您需要将代码包装在一个周围的 div 或 span 中。

1

只需调用 .html() 方法即可从任何元素(包括生成的元素)中获取 HTML。以下是来自 Chrome 开发者工具会话的内容:

> $("<div><span>blerg</span></div>")
Object
> $("<div><span>blerg</span></div>").html()
<span>blerg</span>

你可以看到,第一个返回了一个对象,第二个返回文本。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接