2010-02-23 77 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做任何事情。

相关问题