jQuery包装集指的是通过$()方法返回的一个元素集,这跟一般的javascript数组有所区别, 包装集在后者的基础上还有一些初始化的函数和属性。 我们可以对二者进行一个比较:

jsdiv = document.getElementsByTagName("div");
jqdiv = $("div"); // javascript 元素集
console.log(jsdiv); // jquery 包装集
console.log(jqdiv);

用firebug调试一下,查看返回的对象:

jQuery包装集-LMLPHP

可以看到,document.getElementsByTagName("div")返回的是一个HTMLCollection元素集。而$("div")返回的是一个对象,这个对象中包含三个div元素,我们可以通过jqdiv[n]的方法访问,同时,这个对象还包含了一些属性(例如length属性)和方法(例如add()、append()方法),这些方法和属性是所有的包装集所共有的。

jQuery包装集-LMLPHP

那么有没有便捷的方法将jquery包装集转化为javascript数组呢?。。。。当然可以!

jqdiv = $("div");
// jquery 包装集
console.log(jqdiv);
//jquery包装集转化为javascript数组
console.log(jqdiv.get());

使用get()方法!!

在firebug中查看结果可以发现使用.get()方法后直接得到了javascript数组:

jQuery包装集-LMLPHP

05-08 08:02