学习JQuery中文文档之map()函数和get()函数

今天学到一个新的函数map()。

map(callback)

官方概述:

将一组元素转换成其他数组(不论是否是元素数组)

你可以用这个函数来建立一个列表,不论是值、属性还是CSS样式,或者其他特别形式。这都可以用‘$.map()‘来方便的建立。

参数:

给每个元素执行的函数

为了让学习者更容易理解这个函数,于是就有了下面这个栗子:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>测试各种JQuery函数</title>
    <script type="text/javascript" src="js/jquery-1.11.3.min.js"></script>
</head>
<body>
    <p class="textmap"><b>Values: </b></p>
    <form class="textmapForm">
          <input type="text" name="name" value="John"/>
          <input type="text" name="password" value="password"/>
          <input type="text" name="url" value="http://ejohn.org/"/>
    </form>
    <script>
    $(function(){
        $(".textmap").append( $("input").map(function(){
              return $(this).val();
        }).get().join(", ") );
        console.log($("input").map(function(){
              return $(this).val();
        }));
    });
    </script>
</body>
</html>

本来我是理解的,看完这个栗子,我就蒙了!

$("input").map(function(){return $(this).val();})

map函数已经完成了遍历和替换了,后面乱入的get()是咋回事呢?

作为一个爱学习的好孩子,我又把两个函数的返回值再看了一遍,看完我还是很纠结,两个函数返回的都是对象,都是数组集合,那还需要多此一举加个get()是为啥?

为了弄清楚这是为什么,我就自己试验了一下,把get()去掉,看看是如何执行的,结果……

就报错了,报错内容是$.map().join()是不合法的。

好吧,基础不好的孩纸真是伤不起,只能靠百度。

度娘果然强大,很快就帮我把这个问题弄清楚了。

原来JQuery下有一个概念叫“类数组”,例如$("li");获取的集合就是类数组,有数组的一些属性,但是不是真正的数组,这类数组的instance of Array是false。

从jQuery对象和js对象的角度来理解的话就是JQuery这种类数组可以理解为属于JQuery对象的数组,所以不能应用JS对象的方法。

这个时候就需要使用get()函数将JQuery对象转化为JS对象,从而可以使用数组的一些方法。

顺便在巩固一下map()的工作机制。

map()的工作有两步:

1、遍历。遍历集合中的每一个元素。

2、替换。对每一个元素执行callback,用返回值替换集合中原本的值。

所以值虽然变了,但是依然属于JQuery对象。

总结:

map()函数返回JQuery对象的数组。

get()函数返回JS对象的数组。

ps:jQuery对象只能用JQuery的方法。

时间: 2024-10-10 22:15:46

学习JQuery中文文档之map()函数和get()函数的相关文章

学习JQuery中文文档之get()函数

前端大神群的群主告诉我们:学习一个框架最好的方法是去把官方文档研究一遍. 现在正式开始我的前端之路,从JQuery的中文文档开始. 基础不牢固,看起来有点慢,但是我会一直坚持下去的.把遇到的问题都记录在此,以便随时查阅. 不展示基础概述,只记录所遇问题. Just Do It! Never Give Up! get()函数 看完这个函数的定义,我就兴冲冲的去试验了一下,写了以下代码: 1 <!DOCTYPE html> 2 <html lang="en"> 3

(十三)unity4.6学习Ugui中文文档-------参考-UGUI Interaction Components(下)

 大家好,我是孙广东.   转载请注明出处:http://write.blog.csdn.net/postedit/38922399 更全的内容请看我的游戏蛮牛地址:http://www.unitymanual.com/forum.php?mod=guide&view=my 4.5 Slider 滑块控件允许用户通过拖动鼠标从一个预先确定的范围选择一个数字值.熟悉的例子包括在游戏中困难设置和在图像编辑器中亮度设置. Properties Property: Property: Interac

(二十五)unity4.6学习Ugui中文文档-------UGUI-Extensions

?? 出处:http://blog.csdn.net/u010019717 这个库是什么? 在此存储库中是扩展脚本来增强您的Unity UI experience的集合.这些脚本从许多来源收集和合并,随着时间的推移改善Unity UI experience.(脚本绝大多数来自脚本线程上unity UI 论坛在这里)你可以下载/项目访问脚本,或您可以下载此预编译的 Unity Asset资产. Unity UI Extensions Unity Asset Controls and extensi

(二十九)unity4.6学习Ugui中文文档-------运行时创建Scroll-lists

?? 孙广东 2015.5.10 首先要滚动和list形式存储内容.  使用Scroll Rect组件.就可以滚动了,但是有时候我们不希望,item超过区域还显示:就要使用Mask组件,说明一下,Mask组件组好配合Image一起使用. 下面的图:显示了的情况[头像是子对象Image].1.父对象只有Mask组件:2.有Mask和Image组件[图片为none]:3.有Mask和Image组件[图片有Alpha透明区域]     在list容器中的item 我们怎么管理呢?VerticalLay

(二十二)unity4.6学习Ugui中文文档-------交互-Eventsystem &amp;amp; Binding

大家好,我是孙广东.   转载请注明出处:http://write.blog.csdn.net/postedit/38922399 更全的内容请看我的游戏蛮牛地址:http://www.unitymanual.com/forum.php?mod=guide&view=my 完整的教程下载地址:http://www.unitymanual.com/thread-26665-1-1.html 5.4 Eventsystem& Binding 这两个东西其有用处不同也没有什么可比較的,可是也要区

unity4.6学习Ugui中文文档-------参考-UGUI Rect Transform .

这一节走进更多的深度,有关unity的用户界面功能. 1.Rect Transform Rect Transform是2D与 3D 图形的Transform组件对应.它用来指定用户界面系统中的大小.位置和旋转的控件 Properties Property: Function: Pos (X, Y and Z) 相对锚点anchors的矩形枢轴pivot点的位置. Width/Height 矩形的宽高 Left, Top, Right, Bottom 矩形的边缘相对于其锚点的位置.这可以被认为是内

(二)unity4.6学习Ugui中文文档-------概要-UGUI Canvas

大家好,我是孙广东.   转载请注明出处:http://write.blog.csdn.net/postedit/38922399 更全的内容请看我的游戏蛮牛地址:http://www.unitymanual.com/forum.php?mod=guide&view=my UI系统允许您快速.直观地创建用户界面(Ui).这是Unity的新 UI 系统的主要功能介绍. 一.UI Overview概要 在这篇概述中,我们就去通过 UI系统的基础知识.我们将开始介绍Canvas(画布)并将所有 U

(三十)unity4.6学习Ugui中文文档-------制作一个泛型的MODAL窗口

孙广东 2015.5.11 在此文章中我们将制作一个泛型的MODAL窗口 (Yes, No, Maybeso, Cancel) 在那里我们可以把内容和动作push到窗口中,这个窗口可以在我们的游戏的任何地方使用,按钮被按下时事件工作. 涉及到的代码: using UnityEngine; using System.Collections; public class BringToFront : MonoBehaviour { void OnEnable () { transform.SetAsL

(十七)unity4.6学习Ugui中文文档-------技巧-Creating a World Space UI

3.Creating a World Space UI UI系统很容易地创建UI用户界面,被定位在其他2D或 3D场景中对象之间的世界中. 开始通过创建一个 UI元素(如Image图像),如果在你的场景中还没有,可以通过使用:GameObject > UI > Image.这也将为您创建一个画布. Set the Canvas to World Space 选择你的画布,改变Render Mode渲染模式为World Space世界空间. 现在你的画布已经位于世界空间中,所有相机都可以被看到,