0

好的,我有输入对象,当它被改变时它会添加另一个..当你点击时
还有删除(izdzēst)链接,它应该删除最后一个输入字段.. 那怎么办?(删除的功能是dzest

我想问题出在$(this)?

<input name="userfile[]" type="file" size=40 />
&nbsp;<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>
4

2 回答 2

0
  • this在您的代码中指的是window对象而不是锚点。
  • closest表示最接近的元素parentinput永远不能成为父母,所以你可能是说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();
}

您还可以使用不显眼的事件处理程序和委托事件。

$('body').on('click', '.link', function(){
        $(this).prev('input').remove();
    });
于 2012-04-26T07:29:08.570 回答
0

尝试这样做,而不是丢失 onclick 属性。

$('a[name=dzest]').on('click', function() {
    $(this).closest('input').remove();
});

或者为删除添加一个 ID 以简化选择器。

于 2012-04-26T07:23:12.067 回答