我正在学习 jquery 并在 chrome js 控制台中使用它。
我使用 js 控制台主要是为了查看 js 对象,因为它在一个简洁的小选择列表中显示所有属性、方法和继承的内容。
也许我在这里误解了一些东西,但是当我在控制台中运行 $(document) 时,它只是返回了文档 dom 对象。我希望能看到一个带有一堆美味 jquery 方法和属性的 js 对象。我的想法是 jquery 将传递给 $() 函数的 dom 元素包装在一个对象中,控制台将输出该对象供我细读。
然后我发现控制台有一个 $() 函数用于返回对 dom 对象的引用。是否使用该函数而不是 jquery 函数?我有一种感觉,我不明白这是如何工作的。
最佳答案
不,jQuery 会破坏控制台的 $
功能。使用 $ == jQuery
检查它。
如果您想检查 jQuery 对象而不是 DOM 元素,请尝试 dir($(document))
。所有有趣的东西都在 __proto__
中。
does $(document) just return a dom object by default or does the console see a dom object in a javascript object and remove it? Still confused about how the console and javascript work together.
当$
是jQuery时,$(document)
返回一个length
为1且window. document
位于索引 0 处。请注意,该对象实际上不是一个数组,它只是像一个数组,Chrome 将其显示为一个数组;在这种情况下,单个“数组元素”显示在两个括号之间。您可能只是没有注意到括号,而只看到它们之间的单个元素。
Apparently ,任何具有引用 Array.prototype.splice
的 splice
属性和数字 length
属性的对象都足以让 Chrome 显示为“类似数组”它作为一个数组。您可以通过在控制台中输入类似 {splice: Array.prototype.splice, 0: 'blah', length: 1}
的内容来测试这一点;它将显示为["blah"]
。使用 console.dir
来避免这种情况。
关于javascript - js 控制台是否破坏了 jquery $() 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20808140/