2010-03-04 51 views
5

當使用jQuery動態地構建標記時,讓它返回它以字符串形式生成的實際HTML,而不是一堆jQuery對象有時會變得很有用。有沒有辦法做到這一點?例如,在這裏:有沒有辦法讓jQuery輸出*實際標記*?

$("<strong></strong>").text("Hi there!"); 

我希望能夠提取純文本字符串

"<strong>Hi there!</strong>" 

,這樣我可以遠程緩存它。有沒有辦法做到這一點?

回答

1

只需調用.html()從任何元素(包括生成的元素)獲取HTML。這是來自Chrome開發者工具會話:

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

您可以看到,第一個返回了一個對象,第二個返回了文本。

3

您可以使用externalHTML插件。 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> 
3

是的,你可以使用HTML()函數

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

會返回!您好「

請記住,這使用的innerHTML,所以

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

將返回

<b>Foo</b> 

當你需要換你的代碼在周圍股利或跨度的結果。

相關問題