【问题标题】:Unclear about Jquery syntax [duplicate]不清楚Jquery语法[重复]
【发布时间】:2016-11-28 10:40:55
【问题描述】:

我知道这是关于 Jquery 的基本知识,但我找不到任何地方可以搜索和解决这个问题。在我的项目中,我有一个表单,我正在使用 jquery 来重置该表单中的每个输入,但我不能像在 javascript 中那样使用 reset() 方法。我搜索发现,在Jquery中如果我想用reset()函数重置一个表单,我需要使用这个$('#form')[0]。我真的很想知道使用 [0] 是什么意思。非常感谢你。 例如:

$(function() {
 $('#reset').click(function() {
   $('#form')[0].reset();
 });
})

【问题讨论】:

  • 请发表您的尝试。
  • $('#form') 只不过是该表单的 JQuery 对象,而 $('#form')[0] 只不过是本地 DOM 元素,您可以在其上执行本地 DOM 操作函数
  • jQuery 没有表单的重置功能,所以你的语法会抓取原生 DOM 并使用它的重置
  • JQuery 对象通常包含一个 DOM 元素数组。即使它只是一个元素(当您通过 id 选择时),它仍然是一个包含一个元素的数组。因此,[0] 引用了该数组中的第一个元素。

标签: javascript jquery syntax


【解决方案1】:

[0] 表示 $() 正在返回元素数组,并且您将获得第一个元素。所以你得到了表单 DOM 元素。

【讨论】:

  • 这样即使我通过jquery选择了一个元素的ID,它仍然返回一个数组,对吧?
  • 不,jquery 应该只在使用类选择器时返回一个数组。看看你的 console.log($("#form")[0]) 中的实际内容
  • 它实际上是在检索您的输入字段。表单中的那些
  • @kimy82 来自文档:link。 “使用 id 选择器作为参数调用 jQuery()(或 $())将返回一个 jQuery 对象,其中包含零或一个 DOM 元素的 collection。”因此,即使对于 id 选择器,它也会返回一个集合。乍一看可能会让人感到困惑,但这只是界面的统一。
  • @HuyLe 明确地说,它不是一个数组。所有 JQuery 方法都返回一个 JQuery 对象,该对象实现索引器“[]”操作。它使该对象成为类似数组的对象。这种对象的另一个例子是“arguments”对象link
猜你喜欢
  • 2017-10-06
  • 2011-11-22
  • 2016-10-10
  • 1970-01-01
  • 2015-08-23
  • 1970-01-01
  • 1970-01-01
  • 2017-05-28
  • 2011-08-14
相关资源
最近更新 更多