开发者社区> 问答> 正文

关于new FormData为什么要添加[0]的问题

我取了一个id为formUpload的表单,用于上传文件。使用jQuery的ajax发送

var formData = new FormData($("#formUpload")[0]);
生成formData对象的时候为什么要在后面添加[0]

展开
收起
小旋风柴进 2016-05-30 08:43:20 3368 0
1 条回答
写回答
取消 提交回答
  • 因为new FormData的参数需要一个HTMLElement类型的数据,而jQuery得到的是个HTMLElement的集合,哪怕只有一个元素。所以需要用[]取其第一个元素。
    纠正一下:
    jQuery是一个伪数组对象,本身是对象,能表现出来数组的特点: 有length属性,能够用下标取值;
    $(".someClass") // 这个时候将所有匹配到DOM元素对象放在jQuery维护的数组中;
    $("#id") // 这个时候将所有匹配到DOM元素对象放在jQuery维护的数组中;
    在数组的特征外,jQuery还可以调用next(), last()等方法(返回结果也还是jQuery对象,jQuery链式功能);

    所以:jQuery得到的是个HTMLElement的集合基础上的封装后的对象

    2019-07-17 19:18:55
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载