2011-06-26 39 views
1

我有這樣的:jQuery的DOM變化螺絲我的CSS

if($('.content', wrapper).length === 0) 
    $(data[current].content).appendTo(wrapper); 
else 
    $('.content', wrapper).replaceWith($(data[current].content)); 

var el = $('.content', wrapper); 

這是工作,但是這個代碼,它應該這樣做:

var el = ($('.content', wrapper).length === 0) 
      ? $(data[current].content).appendTo(wrapper) 
      : $('.content', wrapper).replaceWith($(data[current].content)); 

被搞砸了我的CSS。

el似乎是在兩種情況下是相同的,但由於某種奇怪的原因我的動畫在此之後跟隨出問題,很可能是因爲一些CSS改變...

我在做什麼錯?

+0

是.replaceWith你想要什麼?我相信會返回舊內容,而不是新替換的內容。 – spb

+0

以及我想'$('。content',wrapper)'(被替換的元素)。我的情況是不是replaceWith返回? – Mary

+0

我認爲它會返回被替換的內容(並且不再在DOM中)。來自jQuery的文檔:「必須指出的是,返回的是原始的jQuery對象,該對象是指已從DOM中移除的元素,而不是已替換它的新元素。」 – spb

回答

2

.replaceWith將返回被替換的內容(並且不再在DOM中)。來自jQuery docs

必須注意的是,原來的 jQuery對象被返回。此對象 指已從DOM中刪除的元素,而不是已將其替換的新元素 。