2011-11-08 48 views
0

我覺得我堅持這一點。我想根據rel的相似性將源的內容附加到它的目標容器中。追加類似rel值的內容

<div class="targets"> 
<div class="target target-1" rel="1">container 1</div> 
<div class="target target-2" rel="2">container 2</div> 
<div class="target target-3" rel="3">container 3</div> 
</div> 

<div class="sources"> 
<div class="source source-1" rel="1">source 1 content to append to container 1</div> 
<div class="source source-2" rel="2">source 2 content to append to container 2</div> 
<div class="source source-3" rel="3">source 3 content to append to container 3</div> 
</div> 

所以源1頁的內容附加到容器1應該附加到容器1

我嘗試:

var rel_attr = $(this).attr('rel'); 
$('.source-' + rel_attr).appendTo('.target-' + rel_attr); 

但無濟於事。我一定錯過了什麼。

感謝您的任何幫助。

+1

假設'this'是一個'.source'元素的引用(如果是,更多的代碼會有幫助!),你所擁有的將會正常工作:http://jsfiddle.net/Nrg4R/ –

回答

1

它不起作用,因爲$(this)沒有指向某處。試試這個

jQuery('.sources .source').each(function() { 

    var content = jQuery(this).html(); //or .text(); 
    var rel = jQuery(this).attr('rel'); 

    jQuery('.targets .target-'+rel).html(content); // or .text() again; 
    jQuery(this).hide(); 
    //use jQuery(this).html(''); if you do not want to hide the div 

}); 

http://jsfiddle.net/9YkSs/

+0

這個工作,但我也想要從顯示中刪除原始來源。謝謝 – swan

+0

jQuery(this).hide();會做的。 – John

+0

非常感謝。奇蹟般有效。 Jquery已經證明可以節省大量的PHP邏輯。感謝所有人和jquery。 – swan

0

這是否對你的工作:

 
$("div[class^='source-']").each(function() { 
    var tmpRel = $(this).attr("rel"); 
    var divClass= "target-"+tmpRel; 
    $("div[class='"+divClass+"']").append($(this).html()); 
}); 
+0

奇怪的是,我無法讓它工作。會嘗試 – swan

0
$('.source').each(function() 
{ 
    $(this).appendTo($('.targets').find('div.target[rel='+$(this).attr('rel')+']')); 
}) 
0

如果你真的想從 '源' 包裝和地方刪除 '源' 的DIV相關的內部「目標'DIVs,試試這個

$(".source ").each(function(){ 
    var rel_attr = $(this).attr('rel'); 
    $('.source-' + rel_attr).appendTo('.target-' + rel_attr); 
});