jqeruy缩放整体html,jQuery,获取整个元素的html

本问题已经有最佳答案,请猛点这里访问。

我希望得到所选元素的整个HTML,而不仅仅是其内容。.html()根据文档使用javascripts innerhtml()方法。HTML:

Some Content

Some Content

使用$('#divs:first').html();只返回paragraph元素。我想获取整个元素的HTML,如下所示:

Some Content

我不能使用.parent,因为这将返回两个子div的html。

您可以克隆它以获取整个内容,如下所示:

var html = $("").append($("#div1").clone()).html();

或者让它成为一个插件,大多数人倾向于称之为"outerhtml",比如:

jQuery.fn.outerHTML = function() {

return jQuery('').append(this.eq(0).clone()).html();

};

然后你可以打电话给:

var html = $("#div1").outerHTML();

这是一个很好的答案,但jquery没有实现自己的方法真的很糟糕。

它并不完美。如果HTML有一个script标记,则当调用append时,此标记中的代码将运行。可能会引起问题。

在典型的用例中,差异可能没有意义,但是使用标准的DOM功能

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

大约是速度的两倍

$("").append($("#el").clone()).html();

所以我会选择:

/*

* Return outerHTML for the first element in a jQuery object,

* or an empty string if the jQuery object is empty;

*/

jQuery.fn.outerHTML = function() {

return (this[0]) ? this[0].outerHTML : '';

};

如果你只想要开头的标签:/]+>/.exec(elem[0].outerHTML)[0]。

imho这应该是公认的答案-特别是考虑到.clone()的性能影响

我也喜欢默认为空字符串,而不是允许空引用错误,好的,短的,甜的和稳定的,谢谢。这对我很有用。

支持标准的DOM功能,速度快了两倍:)

只需一行代码就可以实现这一点。

$('divs').get(0).outerhtml;

就这么简单。

这对我很有用,谢谢。

又矮又棒!谢谢!

因为我现在使用的是puppeteer,jquery插件不太方便,但是这种单行样式非常适合puppeteer/phantomjs,比如废弃脚本。

通过jquery的clone()方法,您可以很容易地获得子对象本身及其所有的死者(子对象),只是

var child = $('#div div:nth-child(1)').clone();

var child2 = $('#div div:nth-child(2)').clone();

如有疑问,您将在第一个查询中获得此信息。

Some Content

这样编写HTML:

image.jpg

然后.html()函数获取img标记!您可以在任何地方附加。:)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值