有沒有在jQuery克隆元素的內容的方法?不是整個元素,只有內容(兒童)。jQuery只克隆元素的內容
類似於.html()
正在做的事情,但我也有興趣克隆附加到內容的事件。
我在看.clone
,但它似乎是克隆整個元素。
謝謝。
有沒有在jQuery克隆元素的內容的方法?不是整個元素,只有內容(兒童)。jQuery只克隆元素的內容
類似於.html()
正在做的事情,但我也有興趣克隆附加到內容的事件。
我在看.clone
,但它似乎是克隆整個元素。
謝謝。
Doua腳氣,參照the jQuery API documentation for .clone()
你會發現你想要的是.clone(true,true)
。這將對元素(或元素集合)進行深層複製,包括所有數據和事件綁定。
然後,您可以選擇兩種方式來使用.clone(true,true)
。
克隆孩子個別給一個jQuery收集包括孩子的克隆。
var $childClones = $("#myElement").children().clone(true,true);
克隆外元件,得到了一個jQuery集合包括所述外元件的克隆,本身包含子的克隆。
var $clone = $("#myElement").clone(true,true);
它是哪種方法你採用有些學者。在這兩種情況下,後代元素都可以共同或單獨地被操縱和/或插入到DOM中,儘管這樣做的代碼會略有不同。
如果你喜歡深副本只是克隆的孩子:和
$('#footer-flair').children().clone()
,而不是附加事件的特定元素附加一個事件到是聽子元素的容器元素,這樣,你的只要容器元素停留,即使添加/移除容器內的一千個元素,事件也會觸發。如果你不希望你的事件消失,你可以在身體標籤上做到這一點。
使用「上」方法來綁定事件,像這樣:
$('body').on('click', 'button.className', function(){
alert('button clicked');
});
那些不會冒泡的事件呢? –
事件沒有被克隆。 –
@DouaBeri我想在我的回答中說的是,你不能克隆事件,而是將許多事件附加到許多不同的元素上,將它們綁定到像「body」這樣的父類,並像代碼示例中那樣監聽孩子以上。 – nimrod
循環所有的孩子並複製它們? – ZombieSpy
'$ cloned.children()'? – undefined
附加到元素的事件未被克隆 –