如何判断JavaScript和/或jQueryobject的类型

时间:2013-10-09 13:57:29

标签: javascript jquery firebug developer-tools

这个问题与我们所知道的JavaScript的ECMAScript语言实现一样,与jQuery和大多数流行浏览器中可用的开发人员工具一样。

执行如下语句时:

var theElement = $('#theId').closest();

theElement类型是什么?

我认为在上面的jQuery情况下,包括上面的一个jQuery方法实际上返回了jQuery对象本身,它包装了你真正想要的东西。这样,它可以维护一个流畅的API,并允许您在单个语句中加入方法调用,如下所示:

$('#selector').foo().bar().gar().har();

然而,在jQuery的情况下,那么如何确定真正的底层类型是什么?例如,如果返回的元素是具有Id tableRowNumber25的表行,那么如何使用FireBug来实现它。

当我在Firebug的观察窗口或大多数流行浏览器中的任何开发者工具中查看jQuery返回的对象或简单的JavaScript对象时,我看到一个很长的属性/密钥清单,我不知道哪一个看。在jQuery对象中,大多数属性都是lamdas。

所以,真的,我的问题是 - 您如何知道基础类型,您如何知道实际被退回的内容?

2 个答案:

答案 0 :(得分:1)

theElement的类型为[object jQuery]

如果您想要HTML元素本身,则必须选择它:

console.log(theElement[0]) //Return <div id='theId'>
console.log(theElement.get(0)) //Return <div id='theId'>

如果您想要节点名称,则HTML节点元素调用nodeName中有一个属性,它返回大写节点名称:

console.log(theElement[0].nodeName)// Return DIV

答案 1 :(得分:1)

typeof(jQueryElementList.get(0))将返回该类型的字符串。

我认为有些浏览器可能会将其作为大写或小写返回。 IE可能是大写(见Testing the type of a DOM element in JavaScript)。显然,您可以检查nodeType属性(jQueryElementList.get(0).nodeType)以确定它是否是html对象/标记。