为什么 '$("#form")[0].reset();'作品和 '$("#form").reset();'不是?

Why '$("#form")[0].reset();' works and '$("#form").reset();' not?

我在我的网页中使用如下表单重置方法

$("#form")[0].reset();

但是当我像下面这样使用它时

$("#form").reset();

它给我错误。

为什么第一种方法有效而后一种方法无效?

我的页面运行良好。但我想知道背后的原因。解决方案无处不在。但是 none 他们描述了背后的原因。

注意: 我检查了 here,它显示了很多答案。没有明确说明原因。

因为reset()方法是HTML表单元素的成员:

https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement/reset

而不是 jQuery 对象提供的方法,该对象是您的选择器 (#form)

的 0 个或多个匹配元素的集合

jQuery 选择器方法可以 return 多个元素,因此为了保持一致性,行为是 return 一个数组。该数组是其他 jQuery 方法的包装器,可以对该选择进行操作,但操作经典 DOM 函数需要处理特定元素。

你可以像以前那样做,用 [0] 拉出第一个,或者你可以迭代它们:

$('#form').each(function() { this.reset() });

我认为原因很简单,它是为了使用 Jquery

强制执行 javascript 函数

.reset() 不是 Jquery 本机函数。这是一个 Javascript 函数,我们在 Jquery

中强制使用它