这是我附加值的方式:
$('<div>someText</div>').appendTo(self);
这就是我要删除它的方式:
$(self).remove('<div>someText</div>');
附加有效,删除无效。我究竟做错了什么?
这是我附加值的方式:
$('<div>someText</div>').appendTo(self);
这就是我要删除它的方式:
$(self).remove('<div>someText</div>');
附加有效,删除无效。我究竟做错了什么?
API http://api.jquery.com/remove/说需要选择器。
试试$(self).remove('> div');
这将删除 div 的第一个孩子。
您可以使用$(self).filter('div:contains("someText")').remove();
删除具有特定内容的 div 或$(self).find('> div').remove();
删除 div 的第一个孩子。
编辑:删除了我未经测试发布的第一个版本。
该.remove()
函数采用一个选择器来过滤已经匹配的元素,而不是匹配其中的元素。你想要的是这样的:
$(self).find('div:contains(someText)').remove();
这将找到一个包含任何元素内部<div>
文本的元素,然后将其删除。someText
self
它很可能与自我的范围有关。由于您已将其命名为 self 我假设您在 click 事件上使用 $(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();
});