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

У меня есть div, построенный с использованием указанной строки. После некоторой обработки. Мне нужно изменить dialog_title в приведенном выше div. Я пытаюсь сделать это с помощью следующего кодаjquery change div text

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

В то время как это изменяет диалог title..it удаляет элемент диапазона, который используется, чтобы открыть диалоговое окно.

Я попытался метод ReplaceWith со строкой с новым диалогового title..but, который показывает NaN для заголовка и пролета, хотя видно косяк быть нажата (отключены события?)

Как изменить текст без теряя диапазон и возможность щелкнуть его.

Заранее спасибо.

ответ

53

Поместите название в его собственной продолжительности.

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

+1 Еще лучше, поместите заголовок в тег заголовка: $ ('#' + div_id + '> h2'). Text ('foo') ' –

4

Я думаю, что это будет делать:

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

Это обыкновение, потому что текст он меняется разве в пролете – gubby

+0

Thanks..Adding пролета и настройки его текст решить эту проблему. Но я могу дать только один ответ как правильный :( – 2009-07-09 11:26:10

2

лучший и простой способ, чтобы положить титул в пролете и заменить потом.

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

теперь вы можете просто использовать это:

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

Если идентификатор из диапазона устанавливается то, почему существует длинный селектор.Его недостаточно, чтобы указать идентификатор span. – rahul

+0

Спасибо..Добавление диапазона и настройка его текста решают проблему.Но я могу дать только один ответ как правильный: ( – 2009-07-09 11:25:32