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

时间:2015-08-19 08:52:03

标签: javascript jquery jquery-ui jquery-ui-accordion

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

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

我对Javascript和jQuery很陌生。我想了解它,但我很难过。这一行是jQuery UI Accordion小部件的实现。

this指的是什么?

另外,我玩了一下线,我开始理解它完美无缺 - 无论阵列中的数字是多少。另外,如果我删除括号并只写下面的行,它就可以正常工作:

var searchBox = $(this.element);

它意味着什么,有什么区别?

非常感谢你。 :)

修改 这是我的完整代码。也许它会有所帮助。 https://jsfiddle.net/yx8puo2j/1/

3 个答案:

答案 0 :(得分:3)

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

返回一个元素(1个对象)。

var searchBox = $(this.element);

返回列表元素。

这表示 classes ,而非 id (因为id是唯一的)。

  

示例:

     
      
  • var searchbox = $(this.angry_button)返回课程angry_button的所有(列表)元素。
  •   
  • var searchbox = $(this.angry_button[0])返回类angry_button第一个元素。
  •   
  • var searchbox = $(this.angry_button[1])返回类angry_button第二个元素。
  •   

答案 1 :(得分:1)

使用时

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

您正在选择第一个

  

元素

""这"在哪里"这"是您当前所处的元素,如div或输入字段

答案 2 :(得分:1)

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

在jQuery中,您可以选择$("")的任何元素,但如果您选择在DOM中多次存在的类,该怎么办? 所以我得到了这个在文档中存在5次的按钮类,我用$(".button")选择它。现在返回一个包含5个项目的数组。

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

<小时/> 所以基本上你在页面中选择具有该特定标识符的元素n。