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

Rub*_*ans 86 javascript jquery

我是jQuery的新手,如果这是一个愚蠢的问题,我道歉.

当我使用它时使用id找到一个元素,我知道总是一个匹配,为了访问它我会使用索引[0].有没有更好的方法呢?例如

var gridHeader = $("#grid_GridHeader")[0];
Run Code Online (Sandbox Code Playgroud)

Nic*_*ver 90

您也可以使用.get(0)但是......您不应该使用ID找到的元素来执行此操作,该元素应该始终是唯一的.我希望这只是示例中的一个疏忽...如果在您的实际页面上是这种情况,您需要修复它以使您的ID是唯一的,并使用类(或其他属性)代替.

.get()(比如[0])获取DOM元素,如果你想使用jQuery对象,.eq(0)或者.first():)

  • 除了`$("#id")/*jQuery对象*/!= $("#id").get(0)/*DOM Object*/` (17认同)
  • @BrunoLM - 如果你想要一个DOM元素,`document.getElementById('id')`,不要创建一个jQuery对象只是为了扔掉它...这非常浪费,从选择器引擎到对象包装器,它是只是矫枉过正没有正当理由:) (9认同)
  • @NickCraver-谢谢。我只是用$('#id')[0]`代替了一堆document.getElementById('id')`,但不喜欢`[0]`。您对浪费的评论使我考虑定义`$ 0 = function(id){return document.getElementById(id);}`,现在我更喜欢`$ 0('id')`。与`$('#id')`相同的字符数,我只希望它可以是`$#('id')`。 (2认同)
  • 希望这些方法有一个变体,可以从空结果集中返回虚假值。 (2认同)

Mer*_*vyn 24

$("#grid_GridHeader:first") 也有效.

  • 我认为这是在这里处理您的问题的最佳方法。与.eq(0)相反,它读起来很好 (3认同)

Ben*_*mma 15

您可以使用第一种方法:

$('li').first()
Run Code Online (Sandbox Code Playgroud)

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

顺便说一下,我同意Nick Craver的说法 - 使用document.getElementById()...

  • 如果未找到元素,则返回一个空数组。在逻辑语句中使用时要小心,因为“[]”将评估为“true”。 (2认同)

Mat*_*att 6

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

var header = $('.header:first')
Run Code Online (Sandbox Code Playgroud)

  • 返回具有单个元素的数组。 (2认同)