2011-05-17 15 views
5

Estoy un poco cansado esta noche y realmente no puedo pensar cómo hacerlo simplemente. Básicamente, tengo algo similar a la de abajo y quiero que se deben eliminar las etiquetas HTML, pero dejar a sus contenidos:Eliminar la etiqueta pero dejar contenido - jQuery/Javascript

<a href="#">some content</a> and more <a href="#"> and more content</a> 

y vuelven en realidad lo siguiente:

some content and more and more content 

Cualquier ayuda como siempre - masivamente apreciada!

EDIT: Muchas gracias a todos por las respuestas - ¡allí estaba yendo por la ruta de expresión regular, forma de complicar demasiado las cosas! De hecho, terminé usando .text() como se sugiere a continuación, lo he usado antes pero solo para establecer, nunca para recuperar y funcionó mejor ya que estaba devolviendo un objeto bastante grande. Muchas gracias por todas las sugerencias :). Aceptaré la respuesta después de 6 minutos.

Respuesta

4

$ (selector) .text() debería eliminar todo el html.

+0

¡Nunca supe este método eliminó las etiquetas de forma predeterminada! Solo lo he usado para configurar texto, o para recuperar texto sin formato, ¡muchas gracias por abrir mi mente! – Jamie

2

esta manera es un poco más, pero tal vez más explica por sí mismo que el método contents().

$('a').each(function() { 
    $(this).replaceWith($(this).html()) 
}) 

replaceWith acepta html de reemplazo. (no selectores)

2

Puede escribir

$(...).find('*') 
     .replaceWith(function() { return this.childNodes }); 

No sé lo bien que se encargará de etiquetas anidadas.

Cuestiones relacionadas