2011-10-04 44 views
0

我有兩個div如下:Put含量爲DIV2 onclick事件

<div id='div1'> 
    <p>Hello world!</p> 
</div> 

<div id='div2'> 

</div> 

<a id='test' href='javascript:void()'>Click me to fill in div2</a> 

我一直想知道什麼應該是在DIV2,以填補的onclick使用jQuery DIV1,以內容的最好方式有

<div id='div1'> 
     <p>Hello world!</p> 
    </div> 

回答

5

使用.contents().clone()附加的$("#div1")內容克隆到$("#div2").append()

$("#div2").append($("#div1").contents().clone()); 
+0

爲什麼你會不會做簡單的'$( '#DIV2')HTML ($( '#DIV1')HTML());'? –

+2

@Floyd - 請參閱[此問題](http://stackoverflow.com/q/7392930/361684)討論直接dom操作與innerHTML操作的優點。 – gilly3

+0

感謝您指出我的問題。幫助把事情放到正確的角度! –

1
$('#div2').html($('#div1').html()); 
2

訴諸連載到HTML,然後將其應用於其他的元件,如Andy's answer does相反,這將是更好的克隆的節點。

$('#test').click(function(e) { 
    e.preventDefault(); 
    $('#div1').contents().clone(true).appendTo('#div2'); 
}); 

這樣做的好處是克隆元素上的任何數據或事件都將繼續存在於新元素上。由於我已經使用了e.preventDefault(),所以您也可能會丟失代碼的javascript:void位,因爲鏈接的默認操作已被阻止。

見jQuery的API: