Tengo un HTML simple que necesito para eliminar el formato simple.
A nice house was found in <b>Toronto</b>.
Necesito eliminar el negrita, pero dejar la oración intacta.
¿Cómo es esto posible en jQuery?
$('b').contents().unwrap();
Esto selecciona todos los <b>
elementos, luego se usa.contents()
para apuntar al contenido de texto del <b>
, luego.unwrap()
para eliminar su <b>
elemento padre .
Para el mejor rendimiento, siempre vuélvete nativo:
var b = document.getElementsByTagName('b');
while(b.length) {
var parent = b[ 0 ].parentNode;
while( b[ 0 ].firstChild ) {
parent.insertBefore( b[ 0 ].firstChild, b[ 0 ] );
}
parent.removeChild( b[ 0 ] );
}
Esto será mucho más rápido que cualquier solución jQuery proporcionada aquí.
unwrap()
y no podía recordar cómo obtener la parte del texto, olvidé.contents()
- excelente..replacewith()
el recorrido adicional del DOM ... si es una<b>
etiqueta con solo HTML, se vuelve aún más rápido.parent.normalize()
despuésparent.removeChild(...
para fusionar nodos de texto adyacentes. Esto fue útil si modifica continuamente la página.También puedes usar
.replaceWith()
, así:O si sabes que es solo una cadena:
Esto puede marcar una gran diferencia si está desenvolviendo muchos elementos, ya que cualquiera de los enfoques anteriores es significativamente más rápido que el costo
.unwrap()
.fuente
La forma más simple de eliminar elementos html internos y devolver solo texto sería la función JQuery .text () .
Ejemplo:
jsFiddle Demo
fuente
¿Qué tal esto?
La primera línea copia el contenido HTML de la
b
etiqueta en la ubicación directamente después de lab
etiqueta, y luego la segunda línea elimina lab
etiqueta del DOM, dejando solo el contenido copiado.Normalmente envuelvo esto en una función para que sea más fácil de usar:
Todo el código es en realidad Javascript puro, el único JQuery que se usa es que se selecciona el elemento al objetivo (la
b
etiqueta en el primer ejemplo). La función es puramente JS: DMira también:
fuente
fuente
Otra solución nativa (en café):
No sé si es más rápido que la solución user113716, pero puede ser más fácil de entender para algunos.
fuente
La respuesta más simple es alucinante:
¡ExternalHTML es compatible con Internet Explorer 4!
Aquí es para hacerlo con JavaScript incluso sin jQuery
Esto debería funcionar en todos los principales navegadores, incluido el antiguo IE. en el navegador reciente, incluso podemos llamar a Cada uno directamente en la lista de nodos.
fuente