2009-12-07 30 views
22

¿Existe una buena manera de imprimir un objeto jQuery como HTML puro?Imprimir el objeto jQuery como HTML

ejemplo:

<img src="example.jpg"> 

<script> 
var img = $('img').eq(0); 
console.log(img.toString()); 
</script> 

toString() no funciona de esta manera. Necesito la cadena equivalente HTML, es decir:

<img src="example.jpg">

Respuesta

6

Si necesita imprimir el objeto en formato HTML, utilice esta extensión outerHTML o esto outerHTML.

actualización

actualización el enlace para insertar el código para el segundo enlace:

$.fn.outerHTML = function(){ 

    // IE, Chrome & Safari will comply with the non-standard outerHTML, all others (FF) will have a fall-back for cloning 
    return (!this.length) ? this : (this[0].outerHTML || (
     function(el){ 
      var div = document.createElement('div'); 
      div.appendChild(el.cloneNode(true)); 
      var contents = div.innerHTML; 
      div = null; 
      return contents; 
    })(this[0])); 

} 
+0

entonces, realmente necesito una extensión para esto? hace lo mismo que el ejemplo de Magnar, excepto la clonación antes del análisis. – David

+0

si es lo mismo, pero debe clonarlo para seguir moviendo los elementos en el DOM, y eliminarlo. –

15

Usted podría envolverlo y luego usar html:

var img = $('img').eq(0); 
console.log(img.wrap("<span></span>").parent().html()); 
+0

funciona, pero parece un poco incómodo ... ¿hay una mejor manera? – David

+3

¿No modificará el DOM? ¿Deberíamos clonar 'img' primero? – Casebash

22

$('img')[0].outerHTML

le dará el código HTML de la primera img en la página . Luego deberá usar un bucle for para obtener el HTML de todas las imágenes, o poner un ID en la imagen y especificarlo solo en el selector de jQuery.

+0

o, si conocía el elemento específico en el DOM que quería el HTML para ... $ ('# some .selector') [0] .outerHTML Simplemente asegúrese de envolverlo en un if ($ (' #some .selector '). length) – bmarti44

Cuestiones relacionadas