2009-07-09 17 views
25
'<div id="'+div_id+'" class="widget" style="height:60px;width:110px">\n\ 
      <div class="widget-head ui-widget-header" style="cursor:move;height:20px;width:130px">'+ 
     '<span id="'+span_id+'" style="float:right; cursor:pointer" class="dialog_link ui-icon ui-icon-newwin ui-icon-pencil"></span>' + 
      dialog_title+'</div></div> 

Tengo un div construido utilizando la cadena anterior. Después de algún procesamiento ... tengo que cambiar el dialog_title en el div anterior. Estoy tratando de hacerlo con el siguiente códigojquery change div text

$('#'+div_id+' .widget-head').text("new dialog title"); 

Mientras que esto cambia el title..it de diálogo elimina el elemento span que se utiliza para abrir un cuadro de diálogo.

Me trataron de sustituir con el método con una cadena con nueva title..but de diálogo que muestra NaN por el título y la duración, aunque no puede hacerse clic visible (están deshabilitados eventos?)

¿Cómo puedo cambiar el texto sin perdiendo el lapso y la habilidad de hacer clic en él.

Gracias de antemano.

Respuesta

53

poner el título en su propio tramo.

<span id="dialog_title_span">'+dialog_title+'</span> 
$('#dialog_title_span').text("new dialog title"); 
+2

+1 Mejor aún, ponga el título en una etiqueta de encabezado: $ ('#' + div_id + '> h2'). Texto ('foo') ' –

4

creo que esto va a hacer:

$('#'+div_id+' .widget-head > span').text("new dialog title"); 
+1

No lo puedo porque el texto que está cambiando isnt en el lapso – gubby

+0

Thanks..Adding un palmo y el establecimiento de su texto resuelto el problema. Pero solo puedo dar una respuesta como correcta :( –

2

mejor y más sencilla forma es poner el título dentro de un lapso y reemplazar a continuación.

'<div id="'+div_id+'" class="widget" style="height:60px;width:110px">\n\ 
     <div class="widget-head ui-widget-header" 
       style="cursor:move;height:20px;width:130px">'+ 
    '<span id="'+span_id+'" style="float:right; cursor:pointer" 
      class="dialog_link ui-icon ui-icon-newwin ui-icon-pencil"></span>' + 
     '<span id="spTitle">'+ 
     dialog_title+ '</span>' 
'</div></div> 

ahora puede simplemente usar esto:

$('#'+div_id+' .widget-head sp#spTitle').text("new dialog title"); 
+0

Si el ID del lapso se establece entonces ¿por qué hay un selector largo. ¿No es suficiente para especificar la identificación del tramo. – rahul

+0

Gracias ... Añadir un tramo y configurar su texto resolvió el problema. Pero solo puedo dar una respuesta correcta: ( –