如何获得第一个元素,而不是在jQuery中使用[0]?

问题描述:

我是jQuery的新手,如果这是一个愚蠢的问题,道歉。如何获得第一个元素,而不是在jQuery中使用[0]?

当我使用它找到一个使用ID的元素,我知道总是一个匹配,并为了访问它,我会使用索引[0]。有没有更好的方法来做到这一点? 例如

var gridHeader = $("#grid_GridHeader")[0]; 

您可以使用.get(0)以及但是......你不应该需要做的是通过ID找到的元素,即应始终是唯一的。我希望这只是这个例子中的一个疏忽......如果您的实际页面出现这种情况,您需要修复它,以便您的ID是唯一的,并且使用类(或其他属性)。如果你想有一个jQuery对象使用.eq(0).first(),而不是:)

+14

除了'$( “#ID”)/ * jQuery对象*/= $( “#ID”)得到(0)/ * DOM! Object * /' – BrunoLM 2010-06-23 17:07:31

+9

@BrunoLM - 如果你想要一个DOM元素,'document.getElementById('id')',不要创建一个jQuery对象来抛弃它...这是非常浪费的,从选择器引擎到对象包装,它只是没有很好的理由矫枉过正:) – 2010-06-23 17:11:18

+0

尼克我同意,也许我是相当愚蠢的只是使用jquery的everthing。 – Rubans 2010-06-23 17:39:32

http://api.jquery.com/eq/

$("#grid_GridHeader").eq(0) 

$("#grid_GridHeader:first")作品以及

.get()(如[0])得到的DOM元素。

+1

我认为这是处理您的问题的最佳方式。它读得很好,而不是.eq(0) – 2010-06-23 17:12:27

您可以使用第一个选择器。

var header = $('.header:first') 
+0

返回一个包含单个元素的数组。 – Nitin 2016-09-20 22:17:10

,并假设只有一种元素:

$("#grid_GridHeader")[0] 
$("#grid_GridHeader").get(0) 
$("#grid_GridHeader").get() 

...都是等价的,返回单一的基本元素。

从jQuery的源代码,你可以看到,get(0),在幕后,本质上是做同样的事情[0]方法:

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

感谢那些除get()之外的其他所有东西,它似乎没有得到第一个项目。 – Rubans 2010-06-23 17:36:24

+0

其实我可以从Nick Crave的回复中看到为什么这不起作用 – Rubans 2010-06-23 17:38:07

您可以用第一种方法:

$('li').first() 

http://api.jquery.com/first/

btw我同意Nick Craver - 使用document.getElementById()...

+1

如果找不到元素,它将返回一个空数组。在逻辑语句中要小心,因为'[]'将被评估为'true'。 – Ash 2015-08-25 15:48:40

你可以尝试这样的:
yourArray.shift()