获取附加到Fine Uploader的元素的div ID

use*_*448 2 jquery html5 file-upload fine-uploader

我正在使用fineuploader 3.2版.我在这样的HTML页面上嵌入了多个fineuploader实例

<div id="file-uploader_1" class="uploader">
<div id="file-uploader_2" class="uploader">
Run Code Online (Sandbox Code Playgroud)

这就是我如何附加fineuploader

$('.uploader').fineUploader({
request: {
    endpoint: './uploadfile',
    params: {
    imageid: function() {
        return this.id;
     }
    }
},
multiple: false,
validation: {
    allowedExtensions: ['jpeg', 'jpg', 'gif', 'png'],
    sizeLimit: 551200 // 50 kB = 50 * 1024 bytes
},
text: {
    uploadButton: 'Changepic'
}
}).on('complete', function(event, id, fileName, responseJSON) {
if (responseJSON.success) {
    imgs[this.id]="data:image/jpg;base64,"+ data;
}
});
Run Code Online (Sandbox Code Playgroud)

我想将附加到fineuploader的div的id传递给fileupload请求.但是我发现在引用'this.id'的地方会返回'undefined'.我也尝试使用this.attr('id')而得到一个错误"Uncaught TypeError:Object#have method'attr'".

我在这里发现了一个类似的问题(FINEUPLOAD将ID作为参数传递)但是解决方案似乎太粗糙了.有人可以提出更好的解决方案,而不是重复相同的代码吗?

Cod*_*gue 5

您可以遍历元素并在每个元素上调用fineUploader,检索流程中的每个ID:

$('.uploader').each(function() {
  var uplId= $(this).prop("id");
  $(this).fineUploader({
    request: {
        endpoint: './uploadfile',
        params: {
        imageid: function() {
            return uplId;
         }
        }
}
...
});
Run Code Online (Sandbox Code Playgroud)