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

J'ai un div construit en utilisant la chaîne ci-dessus. Après un certain traitement ... Je dois changer le dialog_title dans le div ci-dessus. Je suis en train de le faire avec le code suivantjquery changer le texte div

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

Bien que cela change la title..it dialogue supprime l'élément span qui est utilisé pour ouvrir une boîte de dialogue.

J'ai essayé la méthode replaceWith avec une chaîne avec une nouvelle boîte de dialogue title..but qui montre NaN pour le titre et la durée bien visible ne peux pas être cliqué (sont Déactivé?)

Comment puis-je modifier le texte sans perdre la durée et la capacité de cliquer dessus.

Merci d'avance.

Répondre

53

Mettre le titre dans sa propre durée.

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

+1 Mieux encore, mettez le titre dans une balise d'en-tête: $ ('#' + div_id + '> h2'). Text ('foo') ' –

4

Je pense que cela va faire:

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

il ne sera pas parce que le texte qu'il est en train de changer isnt dans la durée – gubby

+0

Thanks..Adding une durée et définissant son texte résolu le problème. Mais je ne peux que donner une réponse aussi correcte :( –

2

meilleure et simple est de mettre le titre dans une période et remplacer ensuite.

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

vous pouvez simplement utiliser ceci:

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

Si l'ID de l'intervalle est réglé alors pourquoi il y a un long sélecteur.Il ne suffit pas de spécifier l'ID de l'envergure – rahul

+0

Merci..Ajout d'une durée et la définition de son texte a résolu le problème.Mais je ne peux donner qu'une seule réponse correcte: ( –

Questions connexes