outerHTML para jQuery

Si alguna vez necesitan imprimir el contenido completo en HTML de un objeto jQuery y no sólo lo que produce .html() ó text() entonces pueden usar esta extensión que les imprimirá el contenido completo del elemento jQuery.

jQuery.fn.outerHtml = function(include_scripts) {
if(include_scripts === undefined){ include_scripts = false; }
var clone = this.clone();
var items = jQuery.map(clone, function(element){
if(jQuery.nodeName(element, "script")){
if(include_scripts){
var attributes;
if(element.attributes){
attributes = jQuery.map(element.attributes, function(attribute){
return attribute.name + '="' + attribute.value + '" ';
});
}
return '<' + element.nodeName + ' ' + attributes.join(' ') + ">" + jQuery(element).html() + "</" + element.nodeName +'>';
} else {
return '';
}
} else {
return jQuery('<div>').append(element).remove().html();
}
});
return items.join('');
}

Para usarlo sólo tienen que ponerlo directamente en su archivo js y llamarlo así

$('#page-title').outerHtml();

Tomado de https://gist.github.com/817477

Etiquetas: