6

我想获取 html,包括我用来获取 html 的选择器

假设我有

<div id="foo">
  <div id="bar">content</div>
</div>

当我这样做$('#foo').html()

<div id="bar">content</div>

jquery中有没有办法获取包括父级在内的整个html(选择器div)

我想要整个 html

<div id="foo">
  <div id="bar">content</div>
</div>
4

5 回答 5

11

你可以做:

$('#foo')[0].outerHTML;

演示

更多信息:

https://developer.mozilla.org/en/DOM/element.outerHTML

于 2012-06-17T10:40:50.437 回答
4

你也可以这样.clone().wrap()

$('#foo').clone().wrap("<div/>").parent().html();

演示:http: //jsfiddle.net/joycse06/Vy5JW/

outerHTMLFirefox 不支持注意< 11.0您可以在此处的浏览器兼容性部分中检查https://developer.mozilla.org/en/DOM/element.outerHTML

因此,对于故障安全,您可以使用以下outerHTML内容

$foo = $('#foo');
var outerHtml =   ('outerHTML' in $foo[0])? $foo[0].outerHTML 
                                  : $foo.clone().wrap("<div/>").parent().html(); 

更新了演示 http://jsfiddle.net/joycse06/Vy5JW/1/

于 2012-06-17T10:59:25.873 回答
3

您可以使用outerHTML属性

$('#foo')[0].outerHTML
于 2012-06-17T10:41:45.507 回答
1

除了 Sarfraz 的回答,如果您使用的是 jQuery,您可以将其打包到自己的插件中:

(function($) {

    $.fn.outer = function() {

        return $(this)[0].outerHTML;

    };

})(jQuery);
​

这是一个演示:http: //jsfiddle.net/WkH4z/

于 2012-06-17T12:12:32.230 回答
0

试试这个:

    $('#foo').parent().html();
于 2012-06-17T10:41:13.840 回答