在 jQuery 中,`this.element` 和 `this.element[/* some number */]` 有什么区别?

In jQuery, what is the difference between `this.element` and `this.element[/* some number */]`?

我在一段代码中遇到了以下内容:

var searchBox = $(this.element[0]);

我是 Javascript 和 jQuery 的新手。我试图理解它,但我很难。此行是 jQuery UI 手风琴小部件的实现。

this 指的是什么?

另外,我玩了一下这条线,我开始理解它工作得很好——不管数组中的数字是多少。此外,如果我删除括号并只写下一行,它就可以正常工作:

var searchBox = $(this.element);

什么意思,有什么区别?

非常感谢。 :)

编辑: 这是我的完整代码。也许它可以帮助。 https://jsfiddle.net/yx8puo2j/1/

当你使用

var searchBox = $(this.element[0]);

您选择第一个

element

of "This" 其中 "This" 是您当前所在的元素,例如 div 或输入字段

我不能告诉你这是什么,但我可以解释一下发生了什么以及它为什么起作用:

在 jQuery 中,您可以 select 具有 $("") 的任何元素,但是如果您 select 一个 class 在 DOM?? 所以我得到了这个按钮 class 在文档中存在 5 次,我 select 它与 $(".button") 。现在 returns 一个包含 5 个项目的数组。

如果我们想要 select 第一个按钮 $(".button[0]") 如果我们想要 select 第五个按钮 $(".button[4]")


所以基本上你是 select 在具有该特定标识符的页面中添加元素 n。

var searchBox = $(this.element[0]);

returns 一个个元素(1个对象)。

var searchBox = $(this.element);

return 列表 个元素。

这表示 classes,而不是 id(因为 id 是唯一的).

Examples:

  • var searchbox = $(this.angry_button) returns all (list) elements with class angry_button.
  • var searchbox = $(this.angry_button[0]) returns the first element with class angry_button.
  • var searchbox = $(this.angry_button[1]) returns the second element with class angry_button.