値を追加する方法は次のとおりです。
$('<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>テキストを含む要素が検索され、削除されます。someTextself
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();      
});