Javascript JQuery选择器未抓取元素

Javascript JQuery选择器未抓取元素,javascript,jquery,Javascript,Jquery,我正在尝试一个相对简单的jQuery选择器,类似于我以前做过数百次的选择,类似于: $('.fail_vid') 但是,不是像我期望的那样返回元素,即 <div class="fail_vid"></div> 它吐出类似于 <div>, prevObject: jQuery.fn.jQuery.init[1], context: #document, selector: ".fail_vid" ,prevObject:jQuery.fn.jQuery

我正在尝试一个相对简单的jQuery选择器,类似于我以前做过数百次的选择,类似于:

$('.fail_vid')
但是,不是像我期望的那样返回元素,即

<div class="fail_vid"></div>

它吐出类似于

<div>, prevObject: jQuery.fn.jQuery.init[1], context: #document, selector: ".fail_vid"
,prevObject:jQuery.fn.jQuery.init[1],上下文:#文档,选择器:“.fail\u vid”

发生什么事了?我从未见过这样的事情,也不知道如何修复它。

您得到的输出是一个jQuery对象,作为Chrome的输出(我想是23)。关联的元素存储为数组索引。因此,任何没有键的东西都是元素。

您看到的输出只是
$('.fail\u vid')
语句返回的jQuery对象的表示

如果需要实际的DOM元素,请使用以下方法检索它:

$('.fail_vid').get(0)
您还可以直接访问元素数组,如下所示:

$('.fail_vid')[0]
这仅检索选择器选择的第一个DOM元素。如果选择器选择了多个DOM元素,则可以在更高的索引中检索后续元素。您还可以通过调用
.get()
,不带任何参数,一次将所有元素作为数组检索

相关问题:



要确保脚本仅在加载所有DOM元素后执行,您可以在文档末尾包含脚本,也可以使用。

我看不出您的代码有任何问题,能否提供一个示例?您在做什么?如果登录到控制台,这是预期的行为。您如何使用选择器使其“吐出一些东西”?我怀疑问题就在那里。我注意到在更新Chrometh之后,新的“Chrome web inspector”是如何输出jQuery对象的,这是完全正常的,即使它完全不可读。好吧,这很有意义。我实际上是想在RoR部分中找到一些东西。根据您的评论和上面的线程,我怀疑选择器是在片段正确呈现之前被调用的。防止这种情况发生的最佳方法是什么?@AdamTempleton输出中的
是一个domeElement(注意它没有键,它是一个数组索引,如我的回答所示)。因此,您的选择器可能正在工作。您可以使用
console.log($('.fail\u vid').length)
查看您是否正在选择任何内容。@Jasper不会
.eq(0)
只给您另一个jQuery对象吗?