値を追加する方法は次のとおりです。
$('<div>someText</div>').appendTo(self);
そして、これを削除する方法は次のとおりです。
$(self).remove('<div>someText</div>');
追加は機能しますが、削除は機能しません。私は何を間違っていますか?
値を追加する方法は次のとおりです。
$('<div>someText</div>').appendTo(self);
そして、これを削除する方法は次のとおりです。
$(self).remove('<div>someText</div>');
追加は機能しますが、削除は機能しません。私は何を間違っていますか?
この関数は、セレクターを使用して、既に一致している要素をフィルター処理し、内部.remove()
の要素を一致させないようにします。あなたが欲しいものはこのようなものです:
$(self).find('div:contains(someText)').remove();
これにより、要素内の<div>
テキストを含む要素が検索され、削除されます。someText
self
API http://api.jquery.com/remove/は、セレクターが必要であると述べています。
試してください$(self).remove('> div');
これにより、divの最初の子が削除されます。
$(self).filter('div:contains("someText")').remove();
特定のコンテンツを含むdivを削除したり、div$(self).find('> div').remove();
の最初の子を削除したりするために使用できます。
編集:テストせずに投稿した最初のバージョンを削除しました。
それはおそらく自己の範囲と関係があります。自分で名前を付けたので、クリックイベントで$(this)を使用してこの変数を取得していると想定しています。その場合、removeメソッドを呼び出したい場合は、同じ関数内からのみ呼び出すことができます。それ以外の場合は、要素を変数に格納するか、要素にアクセスするための別のセレクターを提供する必要があります。
Example:
<div class="div1"></div>
これはクリックイベントのあるdivになります
$(document).ready(function(){
var self = null;
$('.div1').click(function(e){
self = $(this);
var itemToAdd = '<div>SomeText</div>';
$(itemToAdd).appendTo(self);
});
// to remove it
// this will remove the text immediately after it's placed
// this call needs to be wrapped in a function called on another event
$('.div1').find('div:contains(someText)').remove();
});