为什么我必须在jQuery查询后使用[0]

时间:2015-01-23 09:45:51

标签: jquery

提供该代码:

 var lastVisibleElement =$('#test > div:visible').last()[0];

为什么我必须使用[0]来获取我的HTML。什么是[0]?

3 个答案:

答案 0 :(得分:2)

只需使用console.log()自行分析

var lastVisibleElement = $('#test > div:visible').last()
console.log(lastVisibleElement);

您将看到jQuery结果/匹配作为具有数组类型包装器的对象返回。所以[0]只是指第一个元素。如果使用for循环,eq(num)函数就派上用场了

var objects = $('.selector');
for (var i = 0; i < objects.length; i++) {
    console.log(objects.eq(i));
}

答案 1 :(得分:2)

数组表示法[0]用于获取对实际DOM元素的引用,而不是jQuery对象。

$( "#foo" )[ 0 ]; // Equivalent to document.getElementById( "foo" )

Read this

答案 2 :(得分:2)

在创建新元素(或选择现有元素)时,jQuery返回jQuery对象集合中的元素。 jQuery提供了一个名为.get()的方法,它不是返回一个jQuery包装的DOM元素,而是返回DOM元素本身。

// Selecting only the first <h1> element on the page.

var firstHeadingElem = $( "h1" ).get( 0 );

或者,因为jQuery对象是&#34;类似于数组,&#34;它通过括号支持数组下标:

// Selecting only the first <h1> element on the page (alternate approach).

var firstHeadingElem = $( "h1" )[ 0 ];

来自:The jQuery Object