【问题标题】:Getting the HTML of an element in jQuery [duplicate]在jQuery中获取元素的HTML [重复]
【发布时间】:2013-06-13 11:08:40
【问题描述】:

我试图使用 jQuery 获取元素的整个 HTML。当然,.html() 只抓取内部 HTML,但我也想检索包装 HTML。

想象一下下面的 HTML:

<div id="wrapper">
    <div id="container_a">
        <p>Container A</p>
    </div>
    <div id="container_b">
        <p>Container B</p>
    </div>
</div>

现在,如果我愿意$("#container_a").html(),我会很清楚地得到&lt;p&gt;Container A&lt;/p&gt;。但是,我想得到以下信息:

<div id="container_a">
    <p>Container A</p>
</div>

我将如何实现这一目标?

【问题讨论】:

  • 是的,看起来像。谷歌让我的搜索失望了:|

标签: javascript jquery html


【解决方案1】:

您可以使用prop

$("#container_a").prop('outerHTML');

FIDDLE DEMO

【讨论】:

  • 很高兴看到有一个 jQuery-ish 方式(虽然它看起来有点矫枉过正,tbh)......现在我将不得不筛选源代码以查看是否@ 987654324@实际上是代理...
  • @vzwick 到目前为止有任何更新吗?
  • @vzwick 它真正做的是“修复”一些事情(比如尝试访问class 属性,它在内部将其更改为className),但最终只返回element[ name ]
【解决方案2】:

使用outerHTML

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

使用纯 JavaScript

document.getElementById("container_a").outerHTML;

【讨论】:

    【解决方案3】:

    首先使用clone 临时然后获取html

    $('div').append($('#container_a').clone()).html();
    

    【讨论】:

    • 据我所知,此解决方案是唯一适用于旧 jquery/浏览器版本的解决方案
    【解决方案4】:

    这应该可行

    <script>
        var a=document.getElementById("container_a").outerHTML;
        alert(a);
    </script>
    

    我们可以以任何其他方式使用变量 a 来代替 alert...

    【讨论】:

      【解决方案5】:

      使用outerHTML

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

      演示---&gt;http://jsfiddle.net/uBDHY/1/

      【讨论】:

        【解决方案6】:

        您可以为此使用 .outerHTML

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

        【讨论】:

        • $("#container_a") - # 与众不同。
        • @vzwick 谢谢我更新了
        猜你喜欢
        • 2011-04-06
        • 2013-01-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-04-14
        • 2012-05-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多