jQuery,获取整个元素的html
我希望得到一个选定的元素的整个HTML不只是它的内容。 .html()根据文档使用javascript的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。
你可以克隆它来获取整个内容,如下所示:
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();
在典型的用例中,差异可能没有意义,但是使用标准的DOMfunction
$("#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 : ''; };
您可以使用Jquery的Clone()方法轻松地获取孩子本身以及所有的孩子(孩子)
var child = $('#div div:nth-child(1)').clone(); var child2 = $('#div div:nth-child(2)').clone();
你会得到这个问题的第一个查询
<div id="div1"> <p>Some Content</p> </div>
只需一行代码即可实现。
$( '#的div')得到(0).outerHTML。
就如此容易。
写下你的html像这样:
<div id="element"> <img src="image.jpg"> </div>
那么.html()函数将获得img标签! 你可以追加到任何地方:)