jquery map调用get()方法的困惑

$( "p" )
  .append( $( "input" ).map(function() {
    return $( this ).val();
  })
  .get()
  .join( ", " ) );
<form>
  <input type="text" name="name" value="John">
  <input type="text" name="password" value="password">
  <input type="text" name="url" value="http://ejohn.org/">
</form>

这是我从官网拿出来的一个example

本人曾经很困惑,不明白为什么在map方法的后面要在调用一个get方法。按照理论来说,map 返回出来的数据应该一个数组(集合)。 可以直接调用join方法转化为string.

仔细阅读文档后发现这里有文章。

我原来混淆的javascript object/array(其实就是dom) 和jqeruy object/ array这两个概念

其实javascript的对象和数组和jquery的是相互不能识别的。

当我发现了这个”秘密“之后,就大概明白为什么需要get 方法了

.get(): Retrieve the DOM elements matched by the jQuery object.

这是官网的定义。就是把jquery 对象转为dom 对象。 所有的dom对象都是可以被javascript所使用的。这里jquery其实就是通过get这个机制来顺利过渡两者。

所以我们回头看上面这个例子

map 返回了jquery array 然后通过get方法转为javascript dom array。 最后调用join方法变为string.

时间: 2024-10-10 04:51:39

jquery map调用get()方法的困惑的相关文章

jQuery中调用WebService方法小结

个人感觉有比较方便的两点是:第一,在对WebService做ajax请求的时候,请求的url的写法是:服务地址/调用的方法名称,这样在请求的url中就确定了要调用的方法了,不必再在WebService代码中去判断ajax请求调用的是哪个方法了.第二,方法可以返回更多的数据类型,比如对象,泛型集合等:在ajax请求返回后,会自动将这些类型转换为json对象.而使用ashx的方式的话,需要先将这些类型转换为json格式的数据才能返回. 在使用jQuery调用WebService的方法的时候,只能发送

asp.net如何在前台利用jquery Ajax调用后台方法

一 :最近因为帮同事开发项目使用到了asp.net,而我又想实现Ajax异步请求....从网上查询了一下资料之后,原来在asp.net中利用Ajax调用后台方法同样很简单,为了便于自己以后查看,特将此整理后记录如下 先贴上前台代码如下: 1 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Index.aspx.cs" Inherits="aspnetAjax.In

JQuery对象调用reset方法:Uncaught TypeError: $(...).reset is not a function

一.原因分析 JQuery 中没有 reset() 方法,DOM 对象中有. 二.解决办法 将 JQuery 对象变成 DOM 对象就可以了. JQuery 对象  ==>  DOM 对象:$(JQuery)[0]  ==>  DOM  (即:添加索引 0 就可以了) DOM 对象  ==>  JQuery 对象:$(DOM)  ==>  JQuery (即:将 DOM 对象写入 $() 中) 原文地址:https://www.cnblogs.com/lveyHang/p/1227

jquery + ajax调用后台方法

前台js: var parameter = ""; $.ajax({ type: "POST", //提交方式 url: "Default.aspx/Search", //提交的页面/方法名 data: "{text:'" + parameter + "'}", contentType: "application/json", //返回json数据 success: function(d

jquery.map()方法的使用和源码分析

原型方法map跟each类似调用的是同名静态方法,只不过返回来的数据必须经过另一个原型方法pushStack方法处理之后才返回,源码如下: map: function( callback ) { return this.pushStack( jQuery.map(this, function( elem, i ) { return callback.call( elem, i, elem ); })); }, 本文主要就是分析静态map方法至于pushStack在下一篇随笔里面分析: 首先了解下

.Net中jQuery.ajax()调用asp.net后台方法 总结

利用JQuery的$.ajax()调用.Net后台方法有多种方式, 不多说了  直接上代码 前台代码 1 <script type="text/javascript"> 2 3 $(document).ready(function () { 4 getTreeData(getData()); 5 }); 6 7 //获取ajax调用传参方法 8 function getData() { 9 var data = {}; 10 data.username = "an

jquery.ajax请求aspx和ashx的异同 Jquery Ajax调用aspx页面方法

1.jquery.ajax请求aspx 请求aspx的静态方法要注意一下问题: (1)aspx的后台方法必须静态,而且添加webmethod特性 (2)在ajax方法中contentType必须是"application/json", (3)data传递的数据必须是严格的json数据,如"{'a':'aa','b':'bb'}",而且参数必须和静态方法的参数一 一对应 (4)aspx的后台方法返回的数据默认形式是"{'d':'返回的内容'}",所

Asp.net中JQuery、ajax调用后台方法总结

通过上一篇文章实例的实现,整个过程当中学习到很多知识点,了解了Jquery.Ajax在asp.net中的运用,加以总结,其实原理都是一样的,理解了一种,其他的注意很少的区别就可以了.灵活运用: 1.有参数的方法调用 示例代码如下:前台jQuery代码:$(function() {  知道的一种就是ajax调后台的方法. 1.有参数的方法调用 示例代码如下: 前台jQuery代码: [plain] view plaincopyprint? <span style="font-size:18p

Jquery Ajax调用aspx页面方法

原文:Jquery Ajax调用aspx页面方法 在asp.net webform开发中,用jQuery ajax传值一般有几种玩法 1)普通玩法:通过一般处理程序ashx进行处理: 2)高级玩法:通过aspx.cs中的静态方法+WebMethod进行处理: 3)文艺玩法:通过WCF进行处理. 第一种和第三种方法不在本文介绍范围之内,下面重点介绍第二种方法. 说明 在我们的印象里 asp.net的Web服务是以.asmx来结尾的,而我们现在的asp.net也能实现Web服务,这是因为默认Web.