先看一下对map函数的介绍:
map() 把每个元素通过函数传递到当前匹配集合中,生成包含返回值的新的 jQuery 对象。
理解一下,就是把当前集合中的每个元素传进回调函数然后根据定义的规则返回新的元素,进而生成新的对象,从而实现遍历。
再来看get函数的介绍:
用于获取当前jQueryobject对象所匹配的DOM元素,其返回值是数组。
那么好了,我们知道,JQuery下有一个概念叫“类数组”,例如$(\”li\”)获取的集合就是类数组,或者$(\”*[name=\’name\’]\”)获取的集合也是类数组,既有数组的一些属性,但是不是数组而是对象,
而很多时候我们需要把这些“类数组”里的值的时候转化为JS对象或者数组来使用,那么现在就用到了map和get函数。
为了跟清晰的理解,我们做一个实验用console.log分别把类数组的处理过程分步在控制台打印出来做一下对比:
我们通过name=“deviceSn”取出一个类数组,然后分别输出一下三种信息。
[code]console.log($(\"*[name=\'deviceSn\']\"));console.log($(\"*[name=\'deviceSn\']\").map(function(){return $(this).val()}));console.log($(\"*[name=\'deviceSn\']\").map(function(){return $(this).val()}).get());
看一下输出结果:
第一步通过name获取到一个类数组,执行完map函数后通过回调函数取出每个input里面的value,但是其proto是个object,再加上get函数后看上去内容没什么变化,但是注意到其proto却变成了array。