jquery改变div文本

时间:2009-07-09 10:57:02

标签: jquery

'<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。经过一些处理..我必须更改上面div中的dialog_title。我正在尝试使用以下代码

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

虽然这会更改对话框标题..但会删除用于打开对话框的span元素。

我尝试使用带有新对话框标题的字符串的replaceWith方法..但是显示NaN的标题和跨度虽然可以看不见(禁用事件?)

如何更改文本而不会丢失跨度和单击它的能力。

提前致谢。

3 个答案:

答案 0 :(得分:74)

将标题放在自己的范围内。

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

答案 1 :(得分:4)

我认为这样做:

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

答案 2 :(得分: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");