2011-05-22 23 views
1

我在這裏做的是將一些HTML添加爲HTML到我的clipboard。 但是,我想要從我的clipboard中刪除最後添加的元素/項目。我如何刪除以前的附加項目

我怎樣才能做到這一點,是這個腳本的最最小標準化方式下?

$(document).ready(function(){ 
    $('button:not("#delete")').click(function(e){ 
     $('#clipboard').append($(this).prev('div.images').html() 
       .replace(/\</ig, '&lt;') 
       .replace(/\>/ig, '&gt;')); 
    }); 

    $('#delete').click(function(e){ 
     $('#clipboard').html(' '); 

    }); 
    }); 

我已經找到了這個問題的答案,但如果寫這更最小的,乾淨,請作出任何建議的另一種方式。感謝

回答

2
$('#delete').click(function(e) { 
    $('#clipboard').html(' '); 
}); 

你清空整個剪貼板。

你想要做的,而不是什麼是$("#clipboard").children().last().remove();

你也使用.append而不是增加一個DOM節點添加HTML到您的股利。

var div = $("<div></div>"); 
div.append($(this).prev('div.images').html().replace(/\</ig, '&lt;').replace(/\>/ig, '&gt;')) 
$('#clipboard').append(div); 

如果添加DOM節點,則可以刪除該節點。如果你想內聯元素,然後用var span = $("<span></span>")

Live Example

+0

@Raynos我用你提供的以下內容替換了'$('#clipboard')。html('');'但它沒有做任何事情。 – breezy 2011-05-22 16:21:59

+0

@SirB更新。您需要附加一個DOM節點,而不是HTML文本。 – Raynos 2011-05-22 16:30:28

+0

你先生是個天才!所以,我想說的是,將我的元素包裝在一個'div'中,用html實體替換'< >',並將它們追加到我的'#剪貼板'中,你能簡單地解釋'console'部分,所以我可以理解我'完成。謝謝@Raynos – breezy 2011-05-22 16:38:46

2
$('#clipboard').children().last().remove() 

應該這樣做

+0

這並不做.. @Peter里昂 – breezy 2011-05-22 16:27:23

+0

感謝您的建議。 – breezy 2011-05-22 16:53:29

1

更換var div = $("<div></div>")這裏是我的解決方案: 希望這將有助於...某人:d

JSFiddle DEMO

$('#copy').click(function(e) { 
    $('.images').clone().appendTo('#clipboard').removeClass('images'); 
}); 

$('#delete').live('click', function(e) { 
    $('#clipboard').html(''); 
}); 

並從剪貼板中刪除'最後一項':

JSFiddle DEMO 2

+0

我很肯定這會幫助有人在將來遇到這個問題。但是這會刪除'剪貼板'中的所有項目。我想刪除附加到剪貼板的前一個項目。 – breezy 2011-05-22 16:54:37

+0

@SirB我也添加了這個:在我的答案中看到添加的演示! :) – 2011-05-22 17:00:28

相關問題