首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >jQuery,获取整个元素的html

jQuery,获取整个元素的html
EN

Stack Overflow用户
提问于 2010-09-01 08:27:45
回答 4查看 200.9K关注 0票数 139

我希望获得所选元素的整个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。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 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();
票数 211
EN

Stack Overflow用户

发布于 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 : '';  
};
票数 128
EN

Stack Overflow用户

发布于 2017-02-26 21:59:58

你只需要一行代码就可以做到这一点,它简化了这个过程:

$('#divs').get(0).outerHTML;

就这么简单。

票数 33
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3614212

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档