jQuery IDselect器(“#id”)返回数组

我在noConflict模式下使用jQuery v1.6.1。

我使用IDselect器,如$j("#divID").value来获取存储的项目的值。

不幸的是, $j("#inputID")正在返回一个项目列表,所以我必须使用$j("divID")[0].value来获取对象的值。 [0]似乎没有必要,因为根据定义,只有一个具有任何给定id的html元素。

这是从IDed对象获取值的适当方式吗? 或者,还有更好的方法?

谢谢!

$j("#divID").val()将工作得很好。

根据jQuery文档 , .val()将返回匹配元素集合中第一个元素的值。

从概念上理解jQuery是如何工作的,以便了解它为什么以这种方式工作是值得的。 任何select器查询的结果是一个jQuery对象。 这是jQuery对象,包含jQuery提供的无数方法。 .val()就是像.fadeIn()等那样的方法之一。这些方法不是一个DOM对象的方法,而是一个jQuery对象的方法。 因为jQuery对象是通用的,并且可以在其内部数组中保存0个,1个或多个DOM对象,所以从jQueryselect器调用返回相同的jQuery对象,无论结果是否包含0个,1个或多个DOM对象。

因此,只包含一个对象的$j("#divID")将返回与可能包含数百个DOM对象的$j(".rows")相同types的对象。 这极大地简化了jQuery编程,因为根据从select器查询中返回的对象数量,您不必做任何不同的事情。

当您引用$j("divID")[0]$j("divID")[0]到达jQuery对象的内部DOM对象数组(在select器查询中填充),并获取该数组中的第一个DOM对象。 在这一点上,你有一个正常的DOM对象,而不是一个jQuery对象,你可以使用普通的DOM方法或属性。 有时候这是必需的(以获取实际的DOM对象),但通常,使用jQuery在jQuery对象上提供的方法更容易。 使用它们有很多优点,例如可以将多个请求链接到大多数方法,并且会自动遍历内部数组中的所有DOM对象。

例如,你叫这个: $j("rows-even").hide()并且有这个类的20行,那么所有这些都将被hide()方法操作,而不会有更多的代码这个。 你可以像这样链接多个方法: $j("rows-even").slideUp().slideDown() 。 在这种情况下,您正在运行一个animation,jQuery将这两个animation链接在一起,当第一个animation完成时,会自动启动第二个animation。 在许多情况下,这一切都非常有用,并且可以节省大量通常需要使用普通JS编写的代码。

$j("#divID")返回一个jQuery对象。 为了得到所选元素的值,你必须调用它的val方法来获取值。

使用$j("#divID").val();