2012-10-02 63 views
1

這是我目前要做的事:最清潔的方式來移動子元素與jQuery的最後位置?

function switchcontent(wait){ 
    //fade out image1 
    $('#feature-img img:first-child, ').delay(wait).fadeOut('slow', function() { 
     //fade in imag2 
     $('#feature-img img:nth-child(2)').fadeIn('slow'); 
     var prev_img = ($(this).clone()) 
     $('#feature-img').append(prev_img); 
     $(this).remove() 
     switchcontent(wait); 
    }); 
}; 

我不是很滿意,這個解決方案,特別是因爲我想將它應用到子元素藏漢的另一個元素。

當前HTML:

<div class="images span7"> 
    <img src="featured_1.png"> 
    <img src="featured_2.png"> 
</div> 

我想的東西,也可以適用於:

<div class="feature-text"> 
    <div> 
    <h1>Lugn i din eknonomi</h1> 
    <p>Zenconomy är smart fakturering, redovisning och rapportering på nätet. Vi underlättar vardagen för företagare, redovisningsbyråer och programmerare.</p> 
    </div> 
    <div> 
    <h1>GRAPH</h1> 
    <p>GRAPH OF APPROVAL!</p> 
    </div> 
</div> 

或孩子的它爲這一問題:)

+0

不夠清楚。什麼觸發這個代碼?它是在一個函數中嗎? 'this'是指什麼? –

+0

不清楚的是你爲什麼不滿意這個解決方案。這是非常標準的,我看到沒有錯。你能否詳細說明你的「子元素」聲明? – Th0rndike

回答

1

http://jsbin.com/ufahiy/1/edit任何其他元素

$('div img:first').appendTo('div'); 

這會移動第一個元素作爲您div的最後一個元素

不需要克隆和移除它:您想要移動的元素的單個append()就足夠了。您可以使用螢火蟲檢查DOM並查看更改

1
$('#feature-img').append(prev_img); 
     $(this).remove() 

您不需要克隆它來追加。直接附加它,它會被移動。

prev_img=$(this); 
$('#feature-img').append(prv_img);