为什么使用 jQuery(selector).get(0) 而不是 jQuery(selector)\[0\] 来获取 DOM 元素?

新手上路,请多包涵

如果我只想将 jQuery 数组中的第一项作为 DOM 元素,那么使用 jQuery 比使用 $(selector).get(0)$(selector)[0] 有什么好处吗?

HTML:

 <form id="myForm"></form>

Java脚本:

 var selector = '#myForm';
var domElement = $(selector).get(0); //Returns [object HTMLFormElement]

//Or
var domElement = $(selector)[0]; //Also returns [object HTMLFormElement]

  • .get() 要输入的字符更多。
  • 如果 $(selector) 为空( undefined ),两种方法返回相同的结果
  • 关于 .get() 的 jQuery 文档 指出,您可以简单地使用索引访问器来获取第 n 个元素,但是您没有获得 .get() 的其他好处,例如使用负数来从数组末尾返回项目。
  • 此外,您可以不带参数调用 .get() 以返回 jQuery 数组的所有 DOM 元素。

原文由 Aaron Blenkush 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 823
2 个回答

.get 允许您使用负索引。例如:

 <span>1</span>
<span>2</span>
<span>3</span>

$("span").get(-1); 指第三个 span

但是,如果您不需要该功能而只想选择一个元素 .get(0)[0] 是相同的。注意 this[num]

 // jQuery code
get: function (num) {
    return num == null ?

    // Return a 'clean' array
    this.toArray() :

    // Return just the object
    (num < 0 ? this[this.length + num] : this[num]);
},

原文由 Matt Zeunert 发布,翻译遵循 CC BY-SA 3.0 许可协议

我的代表太低无法评论 ericbowden 的回答,但这里有一个比较这两个操作的 jsperf 测试:

http://jsperf.com/selector-get-0-vs-selector-0

共识(在 Chrome 32 上):基本相同,对 [0] 的优势很小

原文由 mtoor 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题