使用 jQuery 获取自己的 HTML 代码 [重复]

Posted

技术标签:

【中文标题】使用 jQuery 获取自己的 HTML 代码 [重复]【英文标题】:get self HTML code with jQuery [duplicate] 【发布时间】:2012-01-28 13:47:52 【问题描述】:
<div>
  <a href="#" class="selected">link1</a>  
  <a href="#">link1</a>
</div>

并使用以下

$('.selected').html()我明白了

link1

作为返回值。

如何获取所选DOM元素的完整html代码,在本例中获取

&lt;a href="#" class="selected"&gt;link1&lt;/a&gt;

改为?

谢谢

【问题讨论】:

是的。只有 $('.selected').parent().html() 会起作用。 @Umesh 如果有一些兄弟姐妹,这将不起作用,这也将包括在内。 @Armin,已接受视图 :) 为什么值不在 HTML 标签内,例如我在 textarea 上运行了相同的查询。文本区域为空。 【参考方案1】:

jQuery 对象:

$('.selected')

成为DOM对象:

$('.selected')[0]

更新

var str = $("<div />").append($('.selected').clone()).html();
console.log(str);

【讨论】:

这会给他 DOM 对象,而不是 html 字符串... 这个clone在数据很多的时候是不是有点痛苦?【参考方案2】:

我知道这可以在 Chrome 上运行,其余的不知道:

$("#yourElement")[0].outerHTML

该属性来自 javascript(不是 jQuery),并为您提供所需的内容。

【讨论】:

Mozilla 表示它现在可以从 Firefox 11 开始工作:developer.mozilla.org/en-US/docs/Web/API/Element.outerHTML 适用于 FireFox 47、IE11、Opera 38【参考方案3】:

我做了一个与上面类似的解决方案,但没有克隆。

var test = $('#test').wrap('<div class="wrap-unwrap"></div>');
var str = test.parent().html();
test.unwrap();
console.log(str);

【讨论】:

【参考方案4】:

仅使用outerHTML 属性可能无法在所有浏览器中使用。对于不支持outerHTML 的浏览器,您需要自己对其进行序列化。解释见此贴:How do I do OuterHTML in firefox?

【讨论】:

【参考方案5】:

你可以试试这个 jQuery 插件:http://darlesson.com/jquery/outerhtml/

【讨论】:

以上是关于使用 jQuery 获取自己的 HTML 代码 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

我可以使用 Jquery 获取元素的 HTML 源代码吗? [复制]

使用 jQuery 在 iframe 中获取 HTML

jquery获取自身元素的html

jquery怎么获取attribute的值

jQuery获取地址栏中的链接参数

回炉重造JQuery 获取和设置元素内容/属性