2011-11-23 52 views
0

我的代码不工作,我想是因为元素的飞行添加即时添加jQuery更新元素?

var tooltip = $('<div/>').insertAfter('.trigger').addClass('tooltip'); 
var tname = $('<span/>').addClass('tname').text('(...)'); 
tooltip.html(tname.html()): 

// Ajax call 
success: function() { 
    tname.html('success'); // not working 
    $('.tooltip').find('.tname').html('success'); // not working 
    $('.tname').html('success'); // not working 
} 
+1

元素的动态插入可能不是理由,告诉你正在处理 – Rafay

+0

在HTML中,前三行归结为'提示= $('的 (...)');''''''''''''''''''''''''''''您正在为您最初添加到工具提示的div/ –

回答

0

这不起作用,因为您没有将tname元素插入到DOM中。看到这个如下修正:

var tooltip = $('<div/>').insertAfter('.trigger').addClass('tooltip'); 
var tname = $('<span/>').addClass('tname').text('(...)'); 
tooltip.html(""); 
tooltip.append(tname); 

// Ajax call 
success: function() { 
    tname.html('success'); // should work 
    $('.tooltip').find('.tname').html('success'); // should work 
    $('.tname').html('success'); // should work 
} 
0

你不插入跨度到DOM。

//              append to some element 
var tname = $('<span/>').addClass('tname').text('(...)').appendTo(tooltip); 

只有这样您才可以使用选择器来查找元素并对其进行操作。

+0

tooltip div被添加到dom中(假设.trigger存在某处),然后跨度完全替换div。奇怪的构造,但应该在某个地方。 –

+0

@Marc B:但'tname'类不会被'.html()'(只有内部HTML)返回,所以这个类不会被添加到DOM,'.tname'选择器将不会工作。 – pimvdb