2012-12-24 66 views
2

我正在使用jQuery将HTML元素替换为另一个元素。它第一次效果很好,但不是第二次。我不知道为什么它第二次不起作用。jQuery - 使用replaceWith两次不起作用

任何任何想法?

这里的问题的一个例子: http://jsfiddle.net/jfYLG/


从的jsfiddle例子的代码:

<div class="blaat"> 
    <div>woot</div> 
</div> 

<button class="work" type="button">Work</button> 

$(function() { 
    $clone = $('.blaat').clone().addClass('test'); 

    $('.work').click(function() { 
     $('.blaat').replaceWith($clone); 
    }); 
}); 
+0

尝试:'$克隆= $( 'blaat。')。 clone(true).addClass('test')' – elclanrs

+0

看起来你的代码工作正常。只需添加属性的类,你可以看到差异 [1]:http://jsfiddle.net/jfYLG/2/ –

+0

@ Sushanth--它第二次消失。用户的问题在于它不是第二次“工作”,所以我会坚持认为它仍然不起作用。 – Daedalus

回答

1
$(function() { 
    $('.work').click(function() { 
     $clone = $('.blaat').clone().addClass('test'); 
     $('.blaat').replaceWith($clone); 
    }); 
}); 
+0

有效的唯一答案。 – Daedalus

+0

大声笑,我觉得很奇怪,我不得不'克隆'它。我认为在“内存”中有一个副本就足以重复使用。很明显,情况并非如此......无论如何,您的解决方案效果非常好:) – w00