【问题标题】:How to tell the type of a JavaScript and/or jQueryobject如何判断 JavaScript 和/或 jQueryobject 的类型
【发布时间】:2013-10-09 13:57:28
【问题描述】:

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

当你执行这样的语句时:

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

theElement类型是什么?

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

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

然而,在 jQuery 的情况下,你如何确定 real 底层类型是什么?例如,如果返回的元素是 Id 为 tableRowNumber25 的表格行,那么您如何使用 FireBug 来实现这一点。

当我在 Firebug 的监视窗口或大多数流行浏览器中的任何开发人员工具中查看 jQuery 返回的对象或简单的 JavaScript 对象时,我会看到一长串属性/键,我不知道看哪一个。在 jQuery 对象中,大部分属性都是 lamdas。

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

【问题讨论】:

  • theElement 是一个 jQuery 集合,要检索原始 html 节点,请执行 var originalNode = theElement.get(0) // or theElement[0];可以使用firebug控制台执行任意代码;不常知道,但期待返回值类型:p
  • 这将返回一个 DOM 元素/节点——document.getElementById 返回的类型,对吧?
  • 欢迎您!嗯,我错过了获得声望点的更改:/

标签: javascript jquery firebug developer-tools


【解决方案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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-22
      • 1970-01-01
      • 2012-03-16
      • 2012-06-16
      • 2014-09-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多