2011-12-09 15 views
1

這是一個假設性問題 - 我實際上做的並不是更改元素的顏色 - 我一直試圖找出什麼是當我克隆一個元素,然後嘗試元素後追加發生的一切 - 我想過會發生基本上覆制/粘貼 - 但它不工作正是方式 -jquery clone元素並在對原始文件進行更改後附加它

我有包含.foo

元素

我做出這個元素的一個克隆,我以後可以用它

var $clone = $('.foo').clone(); 

我然後做一些東西,以原始的元素

$('.foo').css({'color', 'red'}); 

然後不管出於什麼原因,我需要破壞原有的包含.foo並用克隆來替換它:

$('.foo').replaceWith($clone); 

然後我想更改新元素:

$('.foo').css({'color', 'red'}); 

但這不起作用?

+1

定義「不起作用」。 –

+0

我用克隆替換元素後,我試圖對新元素執行的任何功能都不起作用 - 因爲在更改中沒有提供 – Thomas

+0

請參閱下面的答案。你的問題與你用克隆替換元素無關。這表明:http://jsfiddle.net/hptmW/ – maxedison

回答

4

它不起作用,因爲你的.css()語法是錯誤的。當傳遞一個對象來表示方法,因爲你在做什麼,你必須使用冒號的屬性和值在JSON分開,像往常一樣:

$('.foo').css({'color':'red'}); 

要使用逗號,去掉大括號:

$('.foo').css('color', 'red'); 
+0

它實際上是一個語法錯誤,杜......感謝:-D – Thomas