2010-02-23 48 views
9

對不起,如果標題太模糊不清; D。如何使用jQuery獲取innerHtml,包括標記?

其實問題是,讓我說我是這個代碼。

<span id="spanIDxx" style="blah-blah"> 
    <tag1>code here </tag2> sample text 
    <tag2>code here </tag2> html aass hhddll 
    sample text 
</span> 

現在,如果我將使用該代碼。

jQuery("#spanIDxx").html(); 

那麼它將只返回不含<span id="spanIDxx" style="blah-blah">
的innerHTML,但我想要的東西,可以返回的innerHTML包括指定的元素。

回答

11

這將創建一個新的div和你的元素的克隆附加到div。新的div決不會插入到DOM中,因此它不會影響您的頁面。

var theResult = $('<div />').append($("#spanIDxx").clone()).html(); 

alert(theResult); 

如果你需要經常使用這種方法,但不希望與增加另一個插件來打擾,只是使它成爲一個功能:

function htmlInclusive(elem) { return $('<div />').append($(elem).clone()).html(); } 

alert(htmlInclusive("#spanIDxx")); 

或者延長自己的jQuery:

$.fn.htmlInclusive = function() { return $('<div />').append($(this).clone()).html(); } 

alert($("#spanIDxx").htmlInclusive()); 
+0

部分第一章寫了一個叫做'outerHTML'做這個插件:HTTP: //brandonaaron.net/blog/2007/06/17/jquery-snippets-outerhtml/。其他人擴展插件,以允許更換:http://yelotofu.com/2008/08/jquery-outerhtml/ – 2010-02-23 15:38:31

+0

偉大的+1,接受了解決方案:) – 2010-02-24 06:44:26

1

可以將節點複製到新的空節點,要求新.parent(),然後它的.html()

1

Clone可能對您有用。我不相信你實際上需要對clone/s做任何事情。

相關問題