Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >jQuery中的常用内容总结(三)

jQuery中的常用内容总结(三)

作者头像
上帝
发布于 2018-05-18 02:21:33
发布于 2018-05-18 02:21:33
2K10
代码可运行
举报
文章被收录于专栏:影子影子
运行总次数:0
代码可运行

jQuery中的常用内容总结(三)

转载请注明地址:http://www.cnblogs.com/funnyzpc/p/7571998.html

内容提要



A>表单参数序列化提交

如果没有借助jQuery,表单可以直接提交,这样带来两个问题就是安全(get提交)或表单参数验证障碍,嗯~,可能很难懂,这样吧,我先放张图,这图是原生get提交的->

  这下清楚了吧,所有的参数都在浏览器里面显示,稍稍别有用心的人就能轻易利用,这是其一;

  如果是post提交,可能没有以上这个问题,但是。。。,如果参数值提交前需要在js中做处理(表单参数验证或参数拼接等等),这样直接把数据扔给后台的童鞋,肯定不太好~

  额,还可以借助前两章中的方法。。。可能会累死啊~,毕竟每一个表单都要单独取值。。。总之,这样麻烦;哈哈~ヽ(●´ω`●)ノ,既然麻烦,jQuery给我们提供了两个好用的方法serializeArray()和serialize()

前者可以将表单的参数值序列化成一个Array的形式(用于post提交),后者会将表单参数值序列化成键值字符串的形式(用于get提交),二话不说,先放出源码以及效果图-->

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 1 <form style="padding-left: 100px;" id="forms">
 2     姓名:<input type="text" name="name"/><br/>
 3     班级:<select name="class">
 4                 <option value="1">一班</option>
 5                 <option value="2">二班</option>
 6                 <option value="3">三班</option>
 7             </select>
 8             <br/>
 9     性别:<input type="radio" name="sex" value="male"/>
10<input type="radio" name="sex" value="female"/>
11              <br/>
12     课程:<label><input name="course" type="checkbox" value="1" />语文 </label> 
13             <label><input name="course" type="checkbox" value="2" />数学</label> 
14             <label><input name="course" type="checkbox" value="3" />历史</label> 
15             <label><input name="course" type="checkbox" value="4" />化学</label>
16     <br/>
17         <button  type="submit">submit</button>
18         <button type="button" onclick="submitForm(1)">提交1</button>
19         <button  type="button" onclick="submitForm(2)">提交2</button>
20          <button type="reset">取消</button>
21 </form>
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 1 function submitForm(val){
 2         if(1==val){
 3             //serializeArray
 4             var serializeArray=$("#forms").serializeArray();
 5             console.log("serializeArray:");
 6             console.log(serializeArray);
 7             for(var i in serializeArray){
 8                 
 9             }
10         }else{
11             var serialize=$("#forms").serialize();
12             console.log("serialize:");
13             console.log(serialize);
14         }
15     }

  后者已经比较完美了,可以直接拼接到提交路径后面就好了,但~对于前者,这个serializeArray只是帮忙做了一部分,如果是post提交应该是{key1:value1,key2:value2}的形式,此时即使对于菜鸟也很容易写一个通用的方法处理成对象键值对的形式,在此就贡献一个吧(๑´ڡ`๑)-->

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 1     function submitForm(val){
 2         if(1==val){
 3             //serializeArray
 4             var serializeArray=$("#forms").serializeArray();
 5             console.log("serializeArray_before:");
 6             console.log(serializeArray);
 7             console.log("serializeArray_after:");
 8             var paramsArray = $("#forms").serializeArray(),params = {};
 9             for ( var i in paramsArray)
10                 params[paramsArray[i].name] = paramsArray[i].value;
11             console.log(params);
12         }else{
13             var serialize=$("#forms").serialize();
14             console.log("serialize:");
15             console.log(serialize);
16         }
17     }

  实际效果:

  额,嗯~,其实有两个小问题,如果表单有一项没有填的话参数会不存在,还有一个问题是 多选框永远只会序列化第一个值,切记 切记。。。(ಠ .̫.̫ ಠ)

  啊哈,这个问题就不折腾了 就交给聪明的读者吧~~~

  哦~~~,还存在一个问题是,如果表单外层的form标签若不存在,则不能序列化参数,如果table标签里面嵌一个form的也不能,至于这个原因 个人猜想可能是与html规范冲突吧~,这个是我在实际开发中碰到的问题,希望各位不要踩坑啊!

B>遍历

 由于js本身就是脚本语言的缘故,遂在js中可遍历的对象大致有三种 对象Object类型、数组Array类型以及混合类型(一般是Object+Array类型),相比较java是不是巨强大,O(∩_∩)O哈哈~

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 1     var obj={'a':1,'b':2,'c':3},
 2            array=['a','b','c','d'],
 3             mix={'data':['a','b','c'],'pp':99,'kk':21};
 4     console.log("obj:"+obj);
 5     for(var i in obj){
 6         console.log("i="+i+" obj[i]="+obj[i]);
 7     }
 8     console.log("array:"+array);
 9     for(var j in array){
10         console.log("j="+j+" array[j]="+array[j]);
11     }
12     console.log("mix:"+mix);
13     for(var k in mix){
14         console.log("k="+k+" mix[k]="+mix[k]);
15     }

  通过代码和实际输出结果可以看出:

1.如果遍历的是对象类型,循环的每一项都会只输出这个对象item的键key,至于值就需要Object[key]来获取了;

2.如果遍历的是数组类型,循环的每一项都会只输出这个数组Array的下标,下标所指的值需要Array[index]来获取

3.如果是混合类型,最外层若是Array则同数组循环,若是对象Object则同对象循环

  嗯哼...,看起来是不是超简单

  (这里只讲了for in循环,这种写法是一种简略写法,由于非常常用,其他的形式用的少就不缀诉啦。。。)

嗯,以上只是提到了js中的遍历,现在给大家演示下jQuery中的遍历,这里需要说明的是一般对象或者数组遍历用js的遍历就好了,jQuery中的遍历(each)一般是用来遍历选定的dom对象的,这里给出样例哈-->

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1     $("#forms button").each(function(idx,ele){
2         console.log("idx="+idx+" ele="+$(ele).text());
3     });

  以上代码中的each方法的返回值有两个

idx:当前循环到的dom对象所在的下标位置

ele:当前循环到的dom对象可直接使用jQuery的方法对当前循环的dom进行操作

  关于遍历这一节就不过多缀诉了,相信各位键盘上敲敲就轻松明了~

C>其他

关于实际开发中常用的小知识,这里单独拧出来说说(◍'౪`◍)ノ゙:

Number():这个方法是将字符串类型转换成数字(Number)的方法,经转换后的参数是Number类型,如果被转换的类型含有数字外的字符则返回NaN

toFixed(小数位数):此方法可以将Number四舍五入保留指定长度小数位

isNan(对象):此方法可以判断传入的对象是不是数字类型,如果是则返回false,反之为true,同时对象为数字的字符串类型也是可以的

window.location.reload():这个方法是可以刷新浏览器的,在js中可以直接写就好~

setTimeout(方法的字符串形式, 刷新的时间):此方法可以设置指定时间调用指定js方法,刷新时间为毫秒

preventDefault():这个方法一般用于阻止dom的默认事件而使用的,什么是默认事件,例如,点击提交按钮提交表单、点击a标签跳转等都是,如果用此类标签做其他事情的话dom的默认事件肯定是要阻止的

  哈,可能不明白,给个例子(如果细究还是自行在浏览器打js脚本看吧。。。,说实话你这样我救不了你╰_╯)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1 $("a").click(function(event){
2     event.preventDefault();
3   });

关于js中的空、零、null、undefined的一些点拨

在js中如果对象值不存在的时候一般返回undefined,这个undefined既不等于true也不等于false,但且记住undefined在if判断中是false,请区别于直接比较的值,

    在js中如果除了空和零之外的变量在比较时都是true(undefined这个关键字除外哈)

    在js中变量值是不存在null这一说,这个要区别于java中的空值

  额,最后个大家一个在dom里面写js的简便方法,我就直接上代码,自行研究,不解释哈~●ω●

本节结束啦,真开心~↖(▔▽▔)↗

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017-10-10 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
1 条评论
热度
最新
jQuery相当于把JavaScript的内容作了一个汇总,更容易调用,让脚本的编写更简单了。感谢分享。
jQuery相当于把JavaScript的内容作了一个汇总,更容易调用,让脚本的编写更简单了。感谢分享。
回复回复点赞举报
推荐阅读
编辑精选文章
换一批
python测试开发django-165.form表单序列化json的2种方式
调用.serialize() 方法会生成 email=aa&password=123456 这种格式的参数
上海-悠悠
2021/11/16
6670
jQuery中的常用内容总结(一)
jQuery中的常用内容总结(一) 前言 不好意思(✿◠‿◠),由于回家看病以及处理一些其它事情耽搁了,不然这篇博客本该上上周或者上周写的;同时闲谈几句:在这里建议各位开发的童鞋,如果有疾病尽快治疗,不要拖,大病的话甚是~,身体是本钱,如果人的身体健康是一的话,若没有前面的一,后面再多的零也是徒然,同时,建议在开发的时候保持一个好的心态,积极面对需求和技术难点,不要像我一样在难的地方朝一个地方死钻、而且经常性考虑需求之外的需求,这样都是不太好,尽量以"需求"的心态去"开发",而不是以"开发"的心态做"需求
上帝
2018/05/18
1.1K0
JQuery常用方法总结
1.json的创建方式 <script> $(function () { //第一种 var my = new People("CallmeYhz", 26); alert("(1):" + my.name); //第二种 var you = { "name": "周公瑾", "age": 35 };
用户1055830
2018/01/18
1K0
JQuery常用方法总结
Ajax Step By Step5
Ajax 用的最多的地方莫过于表单操作,而传统的表单操作是通过 submit 提交将数据传 输到服务器端。如果使用 Ajax 异步处理的话,我们需要将每个表单元素逐个获取才方能提 交。这样工作效率就大大降低.
wfaceboss
2019/04/08
8740
三、jQuery中的Ajax
.get(url,[data],[callback],[type])与.post(url,[data],[callback],[type])
Dreamy.TZK
2020/08/24
3.9K0
三、jQuery中的Ajax
Zepto源码分析之form模块
前言 JavaScript最初的一个应用场景就是分担服务器处理表单的责任,打破处处依赖服务器的局面,这篇文章主要介绍zepto中form模块关于表单处理的几个方法,serialize、seriali
IMWeb前端团队
2017/12/29
2.1K0
Zepto源码分析之form模块
一文玩转jQuery+Ajax
简介:jQuery 是一个轻量级的"写的少,做的多"的 JavaScript 库。
岳泽以
2023/04/27
4.1K0
一文玩转jQuery+Ajax
jQuery实用工具类--jQuery基础知识点(3)
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
奋飛
2019/08/15
4820
jQuery
    2.jQuery使用户能够更方便地处理HTML Document、Events、实现动画效果、方便地进行Ajax交互,能够极大地简化JavaScript编程。它的宗旨就是:“Write less, do more.“
changxin7
2022/05/06
9.1K0
jQuery
JQuery快速入门
Write less, do more, I like jQuery. jQuery是最常用的js库,整体来说非常轻量并易于扩展,对于移动应用可以使用其更轻量的孪生兄弟Zepto代替。其是由John
用户1216676
2018/01/24
2.7K0
JQuery快速入门
jQuery中的常用内容总结(二)
jQuery中的常用内容总结(二) 转载请注明地址: http://www.cnblogs.com/funnyzpc/p/7571993.html 前言   距离上次博客更新已经有二十来天了(●′ω`●),恍惚之间时间已经从身边流走~,好难过≡(▔﹏▔)≡;所以,我决定这次不管熬夜到几点都要把本节和第三节内容全部写完~ 内容提要 ---- 选择器(上一节) 选择器的扩展方法(上一节) 节点的CSS操作及节点其他操作(上一节) Ajax同步与异步(本节) 事件(本节) 弹窗(本节) 参数序列化(第三节) 遍
上帝
2018/05/18
1.5K0
浅谈jQuey表单序列化
jQuery表格中提供了两个表格序列化函数。分别是serilize()和serializearray()。
用户2936342
2018/08/27
9000
【JQuery】基础从零入门操作,简单详细
但是原⽣的JavaScript提供的API操作DOM元素时, 代码⽐较繁琐, 冗⻓. 我们学习使⽤JQuery来操作⻚⾯对象
三三是该溜子
2024/12/30
1560
【JQuery】基础从零入门操作,简单详细
jQuery基础
一 jQuery是什么? [1]   jQuery由美国人John Resig创建,至今已吸引了来自世界各地的众多 javascript高手加入其team。 [2]   jQuery是继prototype之后又一个优秀的Javascript框架。其宗旨是——WRITE LESS,DO MORE! [3]  它是轻量级的js库(压缩后只有21k) ,这是其它的js库所不及的,它兼容CSS3,还兼容各种浏览器 [4]  jQuery是一个快速的,简洁的javaScript库,使用户能更方便地处理HTMLdo
用户1214487
2018/01/24
2.1K0
Django---Ajax
Ajax准备知识:json 什么是json? 定义: JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式。 它基于 ECMAScript (w3c制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。 简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。 讲json对象,不得不提到JS对象: 合格的json对象:
用户1214487
2018/01/24
4.9K0
Django---Ajax
jQuery学习笔记
jQuery大部分功能需要根据文档的DOM模型来工作,首先需要正确地解析到整个文档的DOM模型结构。使用jQuery需要在整个文档被浏览器完全加载后才开始进行。
wangxl
2018/07/27
3.6K0
JQuery JavaScript常用API整理(前端入门必学)
现在MVVM框架逐渐占据了主要市场,很多老项目也逐渐的从jQuery转向了MVVM架构!JQuery还有必要学吗? 我的答案是jQuery必须学! JavaScript是基础,JQuery能让DOM操作更方便,哪怕用vue react当操作dom的时候 还是离不开的,只是说可以不用学的那么深。
鱼找水需要时间
2023/02/16
7190
Web阶段:第五章:JQuery库
点击:API文档下载 Jquery介绍 1.什么是JQuery ? jQuery,顾名思义,也就是JavaScript和查询(Query),它就是辅助JavaScript开发的js类库。 2.JQue
Java廖志伟
2022/09/28
26.5K0
Web阶段:第五章:JQuery库
Django之json、Ajax简介及实例介绍
JSON 格式于2001年由 Douglas Crockford 提出,目的就是取代繁琐笨重的 XML 格式。
菲宇
2019/06/13
6.7K0
Django之json、Ajax简介及实例介绍
jQuery
onload 事件是等页面文档、外部的 js 文件、css文件、图片加载完毕才执行内部代码。
小丞同学
2021/08/16
8.6K0
相关推荐
python测试开发django-165.form表单序列化json的2种方式
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验