2010-11-04 13 views
6

¿Hay algún problema al reemplazar los contenidos de <span en jQuery?jQuery reemplazar html en lapso

Tengo esto;

<span class='DimensionList'> 
    some html 
</span> 

y

$('.DimensionList').html("<b>This is the new html</b>"); 

Lo que estoy encontrando es que en FF el contenido del lapso que se añaden a. Entonces, el nuevo HTML se encuentra por encima del anterior.

En IE6, sí, tengo que atenderlo, está haciendo más o menos lo mismo.

EDITAR

He editado la pregunta para demostrar que no es HTML en el HTML de reemplazo

+0

http://api.jquery.com/html/#html2 "Cuando usamos .html() para establecer los contenidos de los elementos, todos los contenidos que se encontraban en esos elementos son reemplazados por los nuevos contenidos " Los documentos están claros. ¿Qué versión de jQuery estás usando? – Tudorizer

+0

Estoy usando jquery-1.4.2.min.js. Y sí, sé que esto funciona si uso una Div pero no cuando la cambio a un lapso. Para el registro, no puedo usar un div en este caso – griegs

+1

Funciona para mí. Caso de prueba reproducible por favor. No creo que lo que piensas que está sucediendo, esté sucediendo. – bobince

Respuesta

12

Ya que no hay margen de beneficio en su texto de reemplazo, utilizar el texto() en lugar de html():

$('.DimensionList').text("This is the new html"); 
+3

Intenta borrar el lapso primero, luego configura el nuevo html, como $ ('. DimList'). Empty(). html ("hello"). – hybernaut

+0

Si eso no funciona, supongo que su html (nuevo y posiblemente existente) no es válido. – hybernaut

+0

Ah eh. interesante. El marcado está presente en un departamento del gobierno y estas personas son menos de, digamos, tech savy. Quizás necesito limpiar su código primero. – griegs

1

Usted ha capitalizado DimensionList en sus javascript y con una letra minúscula en su código fuente HTML. Necesitan ser idénticos. En otras palabras, es sensible a mayúsculas y minúsculas.

+0

Lo siento, fue un error tipográfico en la pregunta, no en el código. – griegs

0

¿Has probado .text()? Es similar a .html()

de la documentación de jQuery:

A diferencia del método .html(), .text() puede usarse tanto en XML y HTML documentos

Nosotros debe tener en cuenta que este método escapa de la cadena proporcionada como necesaria para que represente correctamente en HTML. Para hacerlo, llama al el método DOM .createTextNode(), que reemplaza los caracteres especiales con sus equivalentes de entidad HTML (como < para <).

http://api.jquery.com/text/

+0

Tengo, sí, pero necesito insertar html. Lo siento, eso no es evidente en la pregunta. – griegs

+0

Bueno, ¿puedes publicar tu código real? Puede que no sea un error de jQuery, podría ser tu código ... – JustcallmeDrago

+0

esto está muy cerca del código – griegs

2

si necesita usar html() que podría vaciarlo primero: $('.DimensionList').html("").html("<b>This is the new html</b>");

+1

O usa ['.empty()'] (http://api.jquery.com/empty/) –