jQuery 至少分配了一个文件的文件输入选择器
jQuery Selector for file inputs with at least one file assigned
我有一个包含多个文件输入的页面。这些文件对于最终用户是可选的。我想 select 实际分配了文件的输入。我现在的代码类似于:
HTML
<input type="file" id="file1" value="File 1"/>
<input type="file" id="file2" value="File 2"/>
<input type="file" id="file3" value="File 3"/>
JS
$('input[type="file"]').each(function(){
if(this.files.length > 0){
//do something with this file
}
});
这并不可怕,但我真的很想将“files.length>0”合并到 selector 本身中。我试过这个:
$('input[type="file"][value!=""]')
但它 selects 每个文件输入,无论是否分配文件。 select 仅分配文件输入的神奇词是什么?
您无法通过选择器
访问文件属性
在 each
之前使用 filter()
是一种选择。
$('input[type="file"]').filter(function(){
return this.files && this.files.length;
}).each(function(){
// do something with files
});
我有一个包含多个文件输入的页面。这些文件对于最终用户是可选的。我想 select 实际分配了文件的输入。我现在的代码类似于:
HTML
<input type="file" id="file1" value="File 1"/>
<input type="file" id="file2" value="File 2"/>
<input type="file" id="file3" value="File 3"/>
JS
$('input[type="file"]').each(function(){
if(this.files.length > 0){
//do something with this file
}
});
这并不可怕,但我真的很想将“files.length>0”合并到 selector 本身中。我试过这个:
$('input[type="file"][value!=""]')
但它 selects 每个文件输入,无论是否分配文件。 select 仅分配文件输入的神奇词是什么?
您无法通过选择器
访问文件属性在 each
之前使用 filter()
是一种选择。
$('input[type="file"]').filter(function(){
return this.files && this.files.length;
}).each(function(){
// do something with files
});