0

这个问题与我们所知的 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。

所以,真的,我的问题是——你怎么知道底层类型,你怎么知道实际返回的是什么?

4

2 回答 2

1

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

我认为,某些浏览器可能会将其返回为大写或小写。IE 可能大写(请参阅在 JavaScript 中测试 DOM 元素的类型)。显然,您可以检查 nodeType 属性 ( jQueryElementList.get(0).nodeType) 以确定它是否是 html 对象/标签。

于 2013-10-09T14:48:15.680 回答
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
于 2013-10-09T14:07:21.507 回答