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

Mam div skonstruowany przy użyciu powyższego ciąg. Po pewnym przetwarzaniu. Muszę zmienić dialog_title w powyższym div. Staram się robić to z następującego kodujquery change div text

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

Chociaż zmienia title..it dialogowe usuwa element rozpiętości, który jest używany, aby otworzyć okno dialogowe.

Próbowałem metody replaceWith z ciągiem z nowego title..but dialogowym który pokazuje NaN dla tytuł i rozpiętości choć widoczne cant być kliknięty (są zdarzenia wyłączone?)

Jak mogę zmienić tekst bez tracąc rozpiętość i możliwość kliknięcia.

Z góry dziękuję.

Odpowiedz

53

Umieścić tytuł w swojej rozpiętości.

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

+1 Jeszcze lepiej, umieść tytuł w tagu nagłówka: $ ('#' + div_id + '> h2'). Text ('foo') ' –

4

myślę, że to zrobi:

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

To przyzwyczajenie, ponieważ tekst jest on existing zmianie na przestrzeni – gubby

+0

Thanks..Adding rozpiętość i ustawienie jego tekst rozwiązało problem. Ale mogę podać tylko jedną odpowiedź jako poprawną :( –

2

najlepiej i prostym sposobem jest umieszczenie tytuł wewnątrz zakresu i zastąpić czasu.

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

teraz można po prostu użyć tego:

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

Jeśli identyfikator Zakres jest ustawiony, to dlaczego jest długi selektor.Nie wystarczy określić id span.Następnie – rahul

+0

Dzięki .. Dodanie rozpiętości i ustawienie jego tekst rozwiązał problem.Ale mogę tylko dać jedną odpowiedź jako poprawną: ( –