jquery对象转换为dom对象时候的[0]属性是哪里来的?

jQuery 对象是伪数组(array alike),具体看它的源码。
■网友
function $r(s) {\tvar r_s = s.substring(1, s.length);\tvar r_list = ;\tif(s == "#") {\t\tvar r_list = new ele();\t\tr_list = document.getElementById(r_s);\t\treturn r_list;\t} else if(s == ".") {\t\tvar t = document.getElementsByClassName(r_s);\t\tvar r_list = new ele();\t\tfor(var i = 0; i \u0026lt; t.length; i++) {\t\t\tr_list = t;\t\t}\t\treturn r_list;\t} else {\t\tconsole.log("错误的选择器");\t\treturn false;\t}}function ele() {\tthis.s = function() {\t\tconsole.log(this);\t}}window.onload = function() {\t$r(".aaa").s()}大致应该是这么回事,代码略挫,不要在意这些细节
■网友
问题类似,就在这里借用一下一起问了。 【jquery对象转换为dom对象时候的[0]属性是哪里来的?】 想问下:jquery对象,为什么会有dom对象才有的属性,并且不用转换对象类型(即转为dom对象),就可以直接使用.length 属性,比如 var $checkbox = $(\u0026#39;:checkbox\u0026#39;);
直接可以 alert($checkbox.length);跟上面的问题同源,按教科书说法,俩个对象的方法和属性不可以互相调用。
■网友
源码中有会将匹配元素名放入在$.fn上吧记不住啦


    推荐阅读