2011-11-23 48 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