¿Cómo conviertes un objeto jQuery en una cadena?

3 minutos de lectura

¿Como conviertes un objeto jQuery en una cadena
jefe7

¿Cómo conviertes un objeto jQuery en una cadena?

¿Como conviertes un objeto jQuery en una cadena
Juan Feminella

Supongo que está pidiendo la cadena HTML completa. Si ese es el caso, algo como esto hará el truco:

$('<div>').append($('#item-of-interest').clone()).html(); 

Esto se explica con más profundidad. aquípero esencialmente crea un nuevo nodo para envolver el elemento de interés, realiza las manipulaciones, lo elimina y toma el HTML.

Si solo busca una representación de cadena, vaya con new String(obj).

Actualizar

Escribí la respuesta original en 2009. A partir de 2014, la mayoría de los principales navegadores ahora admiten outerHTML como una propiedad nativa (ver, por ejemplo, Firefox y explorador de Internet), por lo que puedes hacer:

$('#item-of-interest').prop('outerHTML');

  • Apesta que no haya un método para hacer esto, pero esta es una gran solución a pesar de todo.

    –Steve

    8 de marzo de 2010 a las 16:45

  • esto elimina las etiquetas de cabeza y cuerpo

    – ilǝ

    9 de enero de 2013 a las 7:06

  • @ user85461 Sin embargo, ese no es un nodo DOM válido, por lo que sería incorrecto intentar llamar a HTML externo para empezar. (Solo un pequeño subconjunto de lo que puede entrar $(...) es un nodo DOM válido).

    – Juan Feminella

    25/02/2015 a las 17:50

  • @Moss te da html interno, o más simple, lo que es en el interior de elemento, mientras que outsideHtml te da elemento como un todo

    – zakius

    19 de enero de 2016 a las 13:43

  • Tenga en cuenta que perderá data

    – Oleg

    12 de abril de 2017 a las 15:15

Con jQuery 1.6, esta parece ser una solución más elegante:

$('#element-of-interest').prop('outerHTML');

  • @Jean-PhilippeLeclerc En Firefox 15.0.1 (linux) funciona de maravilla.

    – dave

    21 de septiembre de 2012 a las 13:01


Simplemente use .get(0) para obtener el elemento nativo y obtener su propiedad HTML exterior:

var $elem = $('<a href="#">Some element</a>');
console.log("HTML is: " + $elem.get(0).outerHTML);

  • Mucho mejor ya que conserva mis atributos también. ¡Gracias!

    – Rohit

    09/04/2014 a las 15:07

1646052487 315 ¿Como conviertes un objeto jQuery en una cadena
alex rockwell

¿Podrías ser un poco más específico? Si está tratando de obtener el HTML dentro de una etiqueta puedes hacer algo como esto:

Fragmento HTML:

<p><b>This is some text</b></p>

jQuery:

var txt = $('p').html(); // Value of text is <b>This is some text</b>

La mejor manera de averiguar qué propiedades y métodos están disponibles para un nodo HTML (objeto) es hacer algo como:

console.log($("#my-node"));

Desde jQuery 1.6+, puede usar HTML externo para incluir las etiquetas HTML en la cadena de salida:

var node = $("#my-node").outerHTML;

  • es $('#my-node').get(0).outerHTML como en la respuesta de mppfiles

    – Schellmax

    8 de agosto de 2013 a las 15:53


  • .outerHTML no funcionó para mí, pero .prop('outerHTML') hizo.

    – dnns

    9 de noviembre de 2015 a las 9:29

1646052487 433 ¿Como conviertes un objeto jQuery en una cadena
Pedro Mortensen

jQuery está aquí, así que:

jQuery.fn.goodOLauterHTML= function() {
    return $('<a></a>').append( this.clone() ).html();
}

Devuelve todas esas cosas HTML:

$('div' /*elys with HTML text stuff that you want */ ).goodOLauterHTML(); // alerts tags and all

  • es $('#my-node').get(0).outerHTML como en la respuesta de mppfiles

    – Schellmax

    8 de agosto de 2013 a las 15:53


  • .outerHTML no funcionó para mí, pero .prop('outerHTML') hizo.

    – dnns

    9 de noviembre de 2015 a las 9:29

1646052488 703 ¿Como conviertes un objeto jQuery en una cadena
johan dettmar

Esto parece funcionar bien para mí:

$("#id")[0].outerHTML

  • También estaba usando esto, pero parece que no funciona para Firefox 6.0.1.

    – mikong

    2 de septiembre de 2011 a las 10:25

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad