jquery - 在 jquery 中选择输入类型=文件如何工作

标签 jquery

我正在学习有关如何使用 ajax 上传文件的教程,并且遇到了这行代码。

var fileToUpload = $('input[type="file"]')[0].files[0];
// I change it to this. And now its undefined.
var fileToUpload = $('input[type="file"]').files[0];

我真的很困惑选择输入类型文件与选择输入类型文本有何不同。使用 .val() 是否与使用 [0].files[0] 相同?

最佳答案

两者是不同的,因为第一个将从普通的节点对象调用.file[0],而第二个则调用.file[0 ] 包装器 jquery 对象。由于 jquery 对象不包含任何像文件这样的属性,第二个对象会抛出类似 Uncaught TypeError: Cannot read property '0' of undefined(…)

的错误

同时.val()将返回节点对象的value属性,并且可以通过jquery对象而不是普通节点对象调用它。

如果您想检查 Jquery 可用的所有可枚举属性,那么只需在控制台中执行以下命令即可。

var x = $();
Object.keys(x.__proto__)

关于jquery - 在 jquery 中选择输入类型=文件如何工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35679189/

相关文章:

javascript - 获取 JSON 数组的长度

jquery - Rails 3.1 可排序嵌套集,带有 jquery 和两个模型

jQuery - 将 <span> 包裹在选定的文本周围 - 重复实例错误

javascript - 如何控制 Angular 滚动条?

javascript - 调整大小时如何修复页脚重叠内容

javascript - JQuery UI 对话框 : Dynamic OnClick Listener

php - MYSQL 数据 -> PHP 数组 -> Javascript(或 Jquery) 如何使用 JSON 传递数据?

javascript - 事件监听器的影响?

javascript - 找到最近的带有disableDiv类的div并禁用其所有内容

javascript - 如何更改在 HTML 中显示所选单选按钮的指示器的颜色?