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

Tôi có một div được tạo bằng chuỗi trên. Sau khi xử lý một số .. Tôi phải thay đổi dialog_title trong div trên. Tôi đang cố gắng làm điều đó với mã sau đâyjquery change div text

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

Trong khi điều này thay đổi tiêu đề hộp thoại..nó xóa phần tử span được sử dụng để mở hộp thoại.

Tôi cố gắng để phương pháp replaceWith với một chuỗi với title..but thoại mới cho thấy NaN cho tiêu đề và nhịp mặc dù không thể nhìn thấy được bấm (được sự kiện vô hiệu hóa?)

Làm thế nào để thay đổi các văn bản mà không mất khoảng thời gian và khả năng nhấp vào nó.

Xin cảm ơn trước.

Trả lời

53

Đặt tiêu đề trong khoảng thời gian riêng của mình.

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

+1 Tốt hơn, hãy đặt tiêu đề trong thẻ tiêu đề: $ ('#' + div_id + '> h2'). ('Foo') ' –

4

Tôi nghĩ rằng điều này sẽ làm:

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

It wont vì văn bản ông đang thay đổi isnt trong khoảng – gubby

+0

Thanks..Adding một khoảng và thiết lập văn bản của nó đã giải quyết được vấn đề. Nhưng tôi chỉ có thể đưa ra một câu trả lời đúng: ( –

2

cách tốt nhất và đơn giản là đặt tiêu đề bên trong một khoảng thời gian và thay thế sau đó.

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

bây giờ bạn có thể dễ dàng sử dụng này:

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

Nếu id của khoảng thời gian được thiết lập sau đó tại sao có một bộ chọn dài.Không phải là nó đủ để xác định id của span. – rahul

+0

Thanks..Thêm một khoảng và thiết lập văn bản của nó giải quyết vấn đề.Nhưng tôi chỉ có thể đưa ra một câu trả lời là chính xác: ( –