Reputation:
'<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.
Upvotes: 60
Views: 277186
Reputation: 5229
Put the title in its own span.
<span id="dialog_title_span">'+dialog_title+'</span>
$('#dialog_title_span').text("new dialog title");
Upvotes: 130
Reputation: 40497
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");
Upvotes: 2
Reputation: 7644
I think this will do:
$('#'+div_id+' .widget-head > span').text("new dialog title");
Upvotes: 5