tags:

views:

2721

answers:

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

I have a div constructed using the above string. After some processing..I have to change the dialog_title in the above div. I am trying to do it with the following code

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

While this changes the dialog title..it removes the span element which is used to open a dialog box.

I tried to the replaceWith method with a string with new dialog title..but that shows NaN for title and the span though visible cant be clicked(are events disabled?)

How do I change the text without losing the span and ability to click it.

Thanks in advance.

A: 

I think this will do:

$('#'+div_id+' .widget-head > span').text("new dialog title");
Martin
It wont because the text he is changing isnt in the span
jgubby
Thanks..Adding a span and setting its text solved the problem. But I can only give one answer as correct :(
+4  A: 

Put the title in its own span.

<span id="dialog_title_span">'+dialog_title+'</span>

$('#dialog_title_span').text("new dialog title");
jgubby
+1 Better yet, put the title in a heading tag: $('#' + div_id + ' > h2').text('foo')'
Ian Oxley
A: 

best and simple way is to put title inside a span and replace then.

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

now you can simply use this:

$('#'+div_id+' .widget-head sp#spTitle').text("new dialog title");
TheVillageIdiot
If the id of the span is set then why there's a long selector. Isn't it enough to specify the id of the span.
rahul
Thanks..Adding a span and setting its text solved the problem. But I can only give one answer as correct :(