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

代わりにこのようにしてみて、onclick属性を失ってください。

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

または、セレクターを簡素化するために削除にIDを追加します。

于 2012-04-26T07:23:12.067 に答える
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();
}

目立たないイベントハンドラーとデリゲートイベントを使用することもできます。

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