好的,我有输入对象,当它被更改时,它会添加另一个..
当你点击它时还有删除(izdzēst
)链接,它应该删除最后一个输入字段..
怎么样? (删除功能为dzest
)
我想问题出在$(this)
?
<input name="userfile[]" type="file" size=40 />
<a href="#" onclick="dzest();return false" class="link" name="dzest" style="font-weight:normal; display:none;">Izdzēst</a><br />
<script>
function dzest(){
$(this).closest('input').remove();
}
$("input[type=file]").change(function() {
$('<input name="userfile[]" type="file" />').appendTo('body');
$('<a href="#" onclick="dzest();return false" class="link" name="dzest" style="font-weight:normal; display:inline;">Izdzēst</a><br/>').appendTo('body');
$('.link').css('display','inline');
});
</script>
答案 0 :(得分:0)
尝试这样做而失去onclick属性。
$('a[name=dzest]').on('click', function() {
$(this).closest('input').remove();
});
或者在删除中添加ID以简化选择器。
答案 1 :(得分:0)
this
引用window
对象而不是锚。 closest
表示最接近的元素父,input
永远不能成为父元素,因此您可能需要prev()
固定代码
$('<a href="#" onclick="dzest(this);return false" class="link" name="dzest" style="font-weight:normal; display:inline;">Izdzēst</a><br/>').appendTo('body');
<a href="#" onclick="dzest(this);return false"
功能:
function dzest(obj){
$(obj).prev('input').remove();
}
您还可以使用不显眼的事件处理程序&amp;委托活动。
$('body').on('click', '.link', function(){
$(this).prev('input').remove();
});