我希望获得所选元素的整个html,而不仅仅是它的内容。根据文档,.html()使用javascripts innerHTML()方法。HTML:
<div id="divs">
<div id="div1">
<p>Some Content</p>
</div>
<div id="div2">
<p>Some Content</p>
</div>
</div>
使用$('#divs:first').html();
将只返回段落元素。我想要获得整个元素的html,如下所示:
<div id="div1">
<p>Some Content</p>
</div>
我不能使用.parent,因为这将返回两个子div的html。
发布于 2010-09-01 08:28:52
您可以克隆它以获得完整的内容,如下所示:
var html = $("<div />").append($("#div1").clone()).html();
或者让它成为一个插件,大多数人倾向于将其称为"outerHTML",就像这样:
jQuery.fn.outerHTML = function() {
return jQuery('<div />').append(this.eq(0).clone()).html();
};
然后你可以直接调用:
var html = $("#div1").outerHTML();
发布于 2013-08-08 09:29:02
在典型用例中,差异可能没有意义,但使用标准DOM功能
$("#el")[0].outerHTML
的速度大约是
$("<div />").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 : '';
};
发布于 2017-02-26 21:59:58
你只需要一行代码就可以做到这一点,它简化了这个过程:
$('#divs').get(0).outerHTML;
就这么简单。
https://stackoverflow.com/questions/3614212
复制相似问题