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

Ich habe ein div mit der obigen Zeichenfolge konstruiert. Nach einiger Verarbeitung..Ich muss den dialog_title im obigen div ändern. Ich versuche es mit dem folgenden Codejquery change div text

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

zu tun, während dies der Dialog title..it ändert das span-Element entfernt, die ein Dialogfeld zu öffnen, verwendet wird.

Ich habe versucht, die replaceWith Methode mit einem String mit neuem Dialog title..but die NaN für den Titel und die Spannweite zeigt jedoch sichtbar kippt angeklickt wird (sind deaktiviert Ereignisse?)

Wie ändere ich den Text ohne Verlieren Sie die Spannweite und die Fähigkeit, darauf zu klicken.

Vielen Dank im Voraus.

Antwort

53

den Titel in seiner eigenen Spanne Put.

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

+1 Besser noch, setzen Sie den Titel in eine Überschrift tag: $ ('#' + div_id + '> h2'). Text ('foo') ' –

4

Ich denke, das tun wird:

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

Es wird nicht, weil der Text er – gubby

+0

in der Spanne zu ändern ist nicht Thanks..Adding eine Spanne gesetzt und seinen Text das Problem gelöst. Aber ich kann nur eine Antwort als richtig angeben :( –

2

beste und einfache Art und Weise ist Titel innerhalb einer Spanne zu setzen und dann ersetzen.

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

jetzt können Sie einfach verwenden:

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

Wenn die ID der Bereich ist dann eingestellt, warum es einen langen Selektor gibt. Ist es nicht genug, um die ID der Spanne anzugeben. – rahul

+0

Thanks..Add ein Span und die Einstellung seines Textes löste das Problem. Aber ich kann nur eine Antwort geben als richtig: ( –