jQuery, get html of a whole element
本问题已经有最佳答案,请猛点这里访问。
我希望得到所选元素的整个HTML,而不仅仅是其内容。.html()根据文档使用javascripts innerhtml()方法。HTML:
1 2 3 4 5 6 7 8 | <p> Some Content </p> <p> Some Content </p> |
使用
1 2 3 | <p> Some Content </p> |
我不能使用.parent,因为这将返回两个子div的html。
您可以克隆它以获取整个内容,如下所示:
1 | var html = $("").append($("#div1").clone()).html(); |
或者让它成为一个插件,大多数人倾向于称之为"outerhtml",比如:
1 2 3 | jQuery.fn.outerHTML = function() { return jQuery('').append(this.eq(0).clone()).html(); }; |
然后你可以打电话给:
1 | var html = $("#div1").outerHTML(); |
在典型的用例中,差异可能没有意义,但是使用标准的DOM功能
1 | $("#el")[0].outerHTML |
大约是速度的两倍
1 | $("").append($("#el").clone()).html(); |
所以我会选择:
1 2 3 4 5 6 7 | /* * 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 : ''; }; |
只需一行代码就可以实现这一点。
$('divs').get(0).outerhtml;
就这么简单。
通过jquery的clone()方法,您可以很容易地获得子对象本身及其所有的死者(子对象),只是
1 2 3 | var child = $('#div div:nth-child(1)').clone(); var child2 = $('#div div:nth-child(2)').clone(); |
如有疑问,您将在第一个查询中获得此信息。
1 2 3 | <p> Some Content </p> |
这样编写HTML:
1 | <img src="image.jpg"> |
然后.html()函数获取img标记!您可以在任何地方附加。:)