Jquery求问 $;与$();的差别,并且用$.each()方法遍历结果不一样
Jquery求问 $;与$();的区别,并且用$.each()方法遍历结果不一样?
如下代码:
以上两种方法都能打出各自的方法名
但是换成用$.each()方法遍历结果就不一样了?
第一种会打出所有方法名
第二种在控制台会有异常 Uncaught TypeError: Cannot call method 'each' of undefined
------解决方案--------------------
for in遍历有一个问题就是,记得用hasOwnProperty判断一下。
如果不用hasOwnProperty判断一下,会遍历obj的原型链上的所有可枚举的属性。
这也就是$和$()的区别。$是jQuery本身,$()是jQuery对象.
$()等价于new jQuery().
如下代码:
var jQuery = $;
var jQueryObject = $();
for(var key in jQuery){
console.log(key);
}
for(var key2 in jQueryObject){
console.log(key2);
}
以上两种方法都能打出各自的方法名
但是换成用$.each()方法遍历结果就不一样了?
$.each(jQuery,function(value){ console.log(value); });
第一种会打出所有方法名
$.each(jQueryObject,function(value){ console.log(value); });
第二种在控制台会有异常 Uncaught TypeError: Cannot call method 'each' of undefined
遍历
JavaScript
jQuery
------解决方案--------------------
for in遍历有一个问题就是,记得用hasOwnProperty判断一下。
for(var i in obj) {
if(obj.hasOwnProperty(i)) {
console.log(i);
}
}
如果不用hasOwnProperty判断一下,会遍历obj的原型链上的所有可枚举的属性。
这也就是$和$()的区别。$是jQuery本身,$()是jQuery对象.
window.$ = function (e,t){return new i.fn.init(e,t,u)}
$()等价于new jQuery().