这个问题与我们所知道的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。
所以,真的,我的问题是 - 您如何知道基础类型,您如何知道实际被退回的内容?
答案 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对象/标记。