如何使用jQuery获取innerHtml,包括标签?

时间:2010-02-23 15:16:36

标签: javascript jquery html dom

很抱歉,如果标题过于模糊; D。

实际上问题是,让我说我是这段代码。

<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的东西,包括指定的元素。

4 个答案:

答案 0 :(得分: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() );

答案 1 :(得分:1)

您可以将节点复制到新的空节点,请求新的.parent()然后请求.html()

答案 2 :(得分:1)

Clone可能对您有用。我不相信你实际上需要对clone / s做任何事情。

答案 3 :(得分:0)

我自己没有使用它,但看起来它可能有用:

http://yelotofu.com/2008/08/jquery-outerhtml/

演示:http://yelotofu.com/labs/jquery/snippets/outerhtml/demo.html