2010-01-24 74 views
2

這裏克隆和appendTo是我的DOM:幫助與jQuery的

<div class="group"> 
     <div class="comment"> 
      <button class="addLink">Add link</button> 
     </div> 

     <div class="link"> 
      <button class="removeLink">Remove link</button> 
     </div> 
    </div> 

我想點擊button.addLink,它會複製div.link並添加它作爲最後一個孩子在div.group。

我從這個代碼開始,但卡住了。

$(this).parent().parent().children(':last').clone().appendTo(); 

我不知道如何編寫appendTo。因爲我希望它被附加到div.group,但我不能只鍵入它作爲'div.group'因爲會有很多其他div.group所以我必須從關係的角度來選擇它。

有人可以幫我嗎?

回答

4
$(this).parent().parent().children(':last').clone().appendTo($(this).parent().parent()); 

或比特更好:

var $parent = $(this).parent().parent(); 
$parent.children(':last').clone().appendTo($parent); 

appendTo()接受一個參數作爲目標其中元素應附在。

你應該閱讀API文檔,這是很好的解釋。

1

嘗試:

$(".addLink").click(function() { 
    var clone = $(this).parent().next("div.link").clone(); 
    $(this).closest(".group").append(clone); 
}); 
+0

'$(本)。接下來()...'應該是'$(本).parent()。下一個()'來遍歷到'< div class =「link」>' – 2010-01-24 09:46:54

+0

@Russ - 你是對的,錯過了。修正了,謝謝。 – karim79 2010-01-24 09:48:02

1
$("button.addLink").click(function() { 
    var self = $(this); 
    var linkDiv = self.parent().next().clone(); 
    self.parent().parent().append(linkDiv);  
}); 

這裏有一個Working Demo。點擊預覽按鈕並嘗試輸出代碼。

0

嘗試。家長()

$('.addlink').click(function(){ 
    var parent = $(this).parents('div.group'); 
    parent.children(':last').clone().appendTo(parent); 
}); 
+0

'父母'可以提供多個元素。它也遍歷到根節點。在這種情況下,karim79的「最接近」方法要好得多,請參閱這裏的「父母」與「最接近」:http://api.jquery.com/closest/ – 2010-01-24 09:46:37