为什么使用 new FormData() 时指定 [0]?

Ilm*_*ont 1 javascript jquery form-data

我刚刚花了几分钟调试why new FormData($("#ImageEditorForm"));不起作用。在转向 Stack Overflow 后,我在另一个线程中找到了一个建议来代替new FormData($("#ImageEditorForm")[0]);

我做出了改变,并没有预料到会发生什么。相反,代码现在可以完美地按预期运行。以前,没有任何内容被提交到服务器。现在,表单数据和文件将按预期显示。

我的问题是为什么需要“[0]”?DOM 中只有一个具有该 ID 的元素。按 ID 选择肯定只返回一个元素吗?这里发生了什么?

and*_*lrc 5

$("#ImageEditorForm")返回一个jQuery 对象FormData需要一个 DOM 节点。

您可以使用document.getElementById(id);它返回 DOM 节点。

FormData(document.getElementById("ImageEditorForm"));
Run Code Online (Sandbox Code Playgroud)

或者使用document.querySelector(selector);which接受一个css选择器,如果找到则返回节点,否则返回null。