jQuery包装集指的是通过$()方法返回的一个元素集,这跟一般的javascript数组有所区别, 包装集在后者的基础上还有一些初始化的函数和属性。 我们可以对二者进行一个比较:
jsdiv = document.getElementsByTagName("div"); jqdiv = $("div"); // javascript 元素集 console.log(jsdiv); // jquery 包装集 console.log(jqdiv);
用firebug调试一下,查看返回的对象:
可以看到,document.getElementsByTagName("div")返回的是一个HTMLCollection元素集。而$("div")返回的是一个对象,这个对象中包含三个div元素,我们可以通过jqdiv[n]的方法访问,同时,这个对象还包含了一些属性(例如length属性)和方法(例如add()、append()方法),这些方法和属性是所有的包装集所共有的。
那么有没有便捷的方法将jquery包装集转化为javascript数组呢?。。。。当然可以!
jqdiv = $("div"); // jquery 包装集 console.log(jqdiv); //jquery包装集转化为javascript数组 console.log(jqdiv.get());
使用get()方法!!
.get(index):获取包装集里的一个或所有匹配的元素。如果不指定参数,包装集里的所有元素就以javascript数组的形式返回;如果指定的下表参数,就返回下表所对应的元素。
在firebug中查看结果可以发现使用.get()方法后直接得到了javascript数组: