[英]jQuery remove multiple inputs then append just one
<input type="text" name="val1"/>
<input type="text" name="val2"/>
$('.beta-panel input').fadeOut(function(){
$(this).remove();
$('.beta-panel').append('<h1>Done</h1>');
});
我有上面的代码,当单击一个按钮时,它会淡出,然后在done
标签中附加和淡入。 问题是,当它淡出并删除输入时,它会显示与输入相同数量的<h1>
标签。
代替:
$('.beta-panel').append('<h1>Done</h1>');
做:
$(this).closest('.beta-panel').append('<h1>Done</h1>');
$(this)
保留对clicked元素的引用, .closest
将找到最接近$(this)
.closest
.beta-panel
,然后追加。
在这种情况下,您可以使用.promise()
:
$('.beta-panel input').fadeOut(function(){
$(this).remove();
}).promise().done(function(){
$('.beta-panel').append('<h1>Done</h1>');
});
从文档中:
.promise()
描述:返回一个Promise对象,以观察绑定到集合的某种类型的所有操作(是否排队)是否已完成。
尝试类似的东西:
$('.beta-panel input').fadeOut(function(){
$(this).remove();
}).parent().append('<h1>Done</h1>');
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.