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

10

抱歉,如果标题过于晦涩 ;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个回答

12

这将创建一个新的 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() );

有个人写了一个叫做 outerHTML 的插件来实现这个功能:http://brandonaaron.net/blog/2007/06/17/jquery-snippets-outerhtml/。另外一个人扩展了这个插件以允许替换:http://yelotofu.com/2008/08/jquery-outerhtml/。 - Paul D. Waite

1

您可以将节点复制到一个新的空节点,请求新的.parent(),然后使用其 .html() 方法。


1

Clone 对您可能会有用。我相信您实际上不需要对克隆对象进行任何操作。


0

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