以下是我追加价值的方式:
$('<div>someText</div>').appendTo(self);
以下是我要删除它的方法:
$(self).remove('<div>someText</div>');
附加工作,删除不。我做错了什么?
答案 0 :(得分:1)
API http://api.jquery.com/remove/需要选择器。
试试 $(self).remove('> div');
这将删除div的第一个孩子。
您可以使用$(self).filter('div:contains("someText")').remove();
删除具有特定内容的div或$(self).find('> div').remove();
以删除div的第一个子节点。
编辑:删除了我未经测试发布的第一个版本。
答案 1 :(得分:1)
.remove()
函数使用选择器来过滤已匹配的元素,而不是匹配内部元素。你想要的是这样的:
$(self).find('div:contains(someText)').remove();
这会在<div>
元素中找到包含文本someText
的{{1}}元素,然后将其删除。
答案 2 :(得分:0)
这很可能与自我的范围有关。既然你已经将它命名为self我假设你在点击事件中使用$(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();
});