Javascript - 按类和文件获取元素[0]

标签 javascript file-upload this

所以我试图通过类获取一个元素,然后存储 File[0]。我尝试使用 files[0] 函数来处理文件上传。当我执行以下操作时,我在 Firebug 控制台中收到错误:“field.files 未定义”。

document.querySelector('#afile').addEventListener('change', function(e) {
var field = document.getElementsByClassName('File');
var file = field.files[0];

当我将代码更改为以下内容时,它可以工作

document.querySelector('#afile').addEventListener('change', function(e) {
var file = this.files[0];

所以我认为问题出在 var file = field.files[0] 上。我需要通过类名而不是“this”来获取它。有人可以帮我使用类名而不是“this”来获取元素吗?谢谢。

最佳答案

var field = document.getElementsByClassName('File');
var file = field[0].files[0];

正如我评论的那样。 getElementsByClassName() 返回一个节点列表。斯拉克斯也这么说。这是一个数组对象。您可以像通过索引访问常规数组一样访问它的成员。 节点列表[索引]

如果你仔细想想,这是合乎逻辑的。类名可以由多个元素使用。因此,当您通过此方法进行选择时,期望多个结果是合乎逻辑的。

关于Javascript - 按类和文件获取元素[0],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27770089/

相关文章:

c# - ASP.NET - 如何使用 C# 显示 javascript 警报?

c# - 如何保存上传的文件?由 c#mvc

validation - 如何在 Angular 6 中上传之前验证文件

jQuery、$(this).parent() 和 Blur()

javascript - 无法理解带有 "this"关键字的函数的行为

javascript - 单击后从按钮上移除焦点

java - 如何在 Rhino 中子类化内部(静态)类?

javascript - 异步函数内未抛出错误

java - ExtJS 文件上传响应?

c++ - 模板类中的模板函数 is_same