DOM对象和Jquery对象

选取第一个元素是用Obj[0] 还是用Obj.eq(0)

为啥有时候很好用,有时候就用着不太6了

举个例子

var jQueryObj=$('#partial div');

jQueryObj中有若干个div

通常我使用jQueryObj[0]去选取第一个对象,之后去调用一些data('value')方法,作为一个后端服务器开发,通常很少去写前端代码。某些时候需要调用.find()方法的之后结果js直接报错了。

What The Fuck

难道让我重新包装一下这个对象

之后 var firstDiv=$(jQueryObj[0]) 然后继续firstDiv.find()

某次看到前端开发使用 var firstDiv=jQueryObj.eq(0)选取对象之后直接 直接.find方法,感觉厉害了Word的哥。竟然发现了新大陆,我可以用eq拿到数组某索引的对象了,同时感慨js这特么是个垃圾这么多重复的api,来伤害我们这些开发狗。

然后我就声明了一个数组 var arr=[0,1,2]。arr.eq(0) 然而得到的结果是 Uncaught TypeError: arr.eq is not a function。

What the fuck 什么情况又不行了。好吧算你们狠,之后我就记下了,可以用eq(0) 去访问访问jquery数组的第一个对象,但是自己定义的不行,感觉js总是让人摸不到头脑。

最近又出现了一个让我苦恼的事情,就是js有好多遍历的方法,诸如 .each forEach .map 方法。真是让一个写惯了.NET的开发人员傻傻分不清楚。总给人的感觉就是each有时候好用,有时候不好用,each好用的时候用each不好用的时候上forEach方法。forEach出来的对象如果继续使用find eq方法则需要将遍历出来的对象做 $(this)处理。

知道今天把我调试恶心,我决定要花一个小时来骂街。

我先写var arr=[1,2,3],arr.forEach,不小心点了回车,返回的结果竟然是function forEach() { [native code] }。chrome也对forEach特殊对待啊。但是当看到[native code]突然恍然大悟,forEach是System API。.each是Jquery框架API,domapi返回的对象是原生的api,each返回的是jquery对象 能够支持jquery对象。