2009-07-09 19 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> 

Ho un div costruito utilizzando la stringa precedente. Dopo un po 'di elaborazione .. Devo cambiare il dialog_title nel suddetto div. Sto cercando di farlo con il seguente codicejquery cambia div text

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

Anche se questo cambia la finestra di dialogo title..it rimuove l'elemento di arco che viene utilizzato per aprire una finestra di dialogo.

ho cercato di metodo ReplaceWith con una stringa con il nuovo title..but finestra di dialogo che mostra NaN per il titolo e la durata anche se non posso essere cliccato visibile (sono eventi disabili?)

Come posso cambiare il testo senza perdere lo span e la possibilità di cliccarlo.

Grazie in anticipo.

risposta

53

mettere il titolo nel proprio arco.

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

+1 Ancora meglio, metti il ​​titolo in un tag direzionale: $ ('#' + div_id + '> h2'). Text ('foo') ' –

4

penso che questo farà:

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

E 'abitudine perché il testo che sta cambiando isnt nel giro – gubby

+0

Thanks..Adding un arco e impostando il suo testo ha risolto il problema. Ma posso solo dare una risposta come corretta :( –

2

modo migliore e più semplice è quello di mettere il titolo all'interno di un arco e sostituire poi.

'<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> 

ora si può semplicemente utilizzare questo:

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

Se l'id dello span è impostato quindi perché c'è un lungo selettore.Non è sufficiente specificare l'id dello span. – rahul

+0

Grazie .. Aggiungere uno span e impostare il suo testo ha risolto il problema, ma posso dare solo una risposta corretta: ( –