如何清除单个文件输入?

时间:2012-03-08 12:58:31

标签: jquery

下面是我所拥有的jquery代码的一部分,它显示了文件输入和“清除文件”按钮。

var $imagefile = $('<input />')
    .attr({
        type: 'file',
        name: 'imageFile',
        class: 'imageFile'
    });

$image.append($imagefile);

var $imageclear = $('<input />')
    .attr({
        type: 'button',
        name: 'imageClear',
        class: 'imageClear',
        value: 'Clear File'
    });

$(".imageClear").click(function(event){
  event.preventDefault();
  $(".imageFile").replaceWith("<input type='file' class='imageFile' />");
});

现在,如果你查看jquery代码的底部,它会显示我正在使用的函数,如果用户点击“清除文件”按钮,它会替换文件输入,这样如果你选择了一个文件,那么想要清除输入,然后通过替换输入来完成此操作。

问题是,我可以说我有两个“imageFile”输入(每个文件输入都包含自己的“清除文件”按钮“并且它们都包含一个文件,然后我想说我只想清除第一个文件输入,当我点击“清除文件”按钮时,它会清除两个文件输入,即使我只想清除一个文件输入。所以我如何编码它以便每个“清除文件”按钮只清除它所属的文件输入到?

1 个答案:

答案 0 :(得分:2)

假设输入和按钮位于同一容器(es.div)中,请将该行更改为:

$(this).parent().find(".imageFile").replaceWith("<input type='file' class='imageFile' />");