JQuery的入门(二)
Jquery的遍历
jQuery对象本身就是数组对象,通过jquery选择器获得的都是满足该选择器条件的元素对象的集合体,因此在常常需要对jquery对象进行遍历.这里有三种遍历Jquery的方法.
传统循环遍历
var $options = $(“option”);
for(var i=0;i<$options.length;i++){
alert(option.value);
}
jQuery对象的方法
此方式是jQuery特有的遍历方式,使用jQuery集合对象调用each方法即可遍历。
语法: jQuery对象.each( function(index,element){} )
each函数参数:每遍历一次数组,就是调用一次匿名函数
匿名函数参数: 索引,遍历到的数组元素。
var $options = $("option");
$options.each(function(index,element){
alert(index); //打印索引
alert(element); //打印$options集合对象中的每一个元素
});
jQuery的全局方法
此方式是jQuery特有的遍历方式,与上面jQuery的对象方法相似,但此处的each方法不是某
个具体jQuery对象的,而是jQuery的全局对象的each方法,名字和功能虽然相同,但语法不
同。
语法:$.each(遍历的数组,function(index,element))
each函数参数:遍历的数组,可以是jQuery对象,也可以是DOM对象
var $options = $(“option”);
$.each($options,function(index,element){
alert(index); //打印索引
alert(element); //打印$options集合对象中的每一个元素
});
<script type="text/javascript">
$(function(){
/*
* 方式1: for循环方式
*/
var $list = $("#city li");
for(var i = 0 ; i < $list.length;i++){
//遍历数组,DOM对象,调用属性innerHTML
alert($list[i].innerHTML);
//遍历数组,DOM对象转成Jquery对象,调用方法html
alert($($list[i]).html());
}
/*
* 方式2: Jquery对象的each方法
* Jquery对象.each(function(索引,元素))
*/
$list.each( function(index,element){
alert(index+"---"+$(element).html());
});
/*
* 方式3: Jquery的each函数
* $.each(数组, function(索引,元素))
*/
$.each($list, function(index,element) {
alert(index+"==="+$(element).html());
});
});
</script>
jQuery的事件
常用事件

jQuery绑定事件与解帮事件
事件函数绑定
jQuery对象直接调用事件函数,例如:$("#id").click(function()){}
on(events,selector,data,fn)函数绑定
参数events:事件名称,多个事件之间空格分开。"click mouseover"
参数selector:绑定事件元素的子代元素,不传递参数,表示该元素自己绑定事件
参数data:事件中要传递给响应函数的参数
参数fn:事件相应的函数
按钮绑定点击事件
$("#btn").on("click",function () {
alert("按钮点击事件");
});
按钮绑定多个事件
//多个事件的响应函数相同,灵活性差
$("#btn").on("click mouseover",function () {
alert("按钮点击事件");
});
//每个事件有自己的响应函数
$("#btn").on({
"click" : function () {
alert("点击事件");
},
"mouseover":function () {
alert("鼠标悬浮");
}
});
为元素的子代绑定事件
//id值是d1的元素的子代d2绑定事件
//如果有多个子代,逗号分开
$("#d1").on("click","#d2",function (data) {
alert("d2...")
});
off(events)函数解除绑定
参数:要解除的事件,多个事件空格分开,不传递参数表示解除全部事件
$("#btn").click(function () {
$("#d1").off("click mouseover");
});
省市联动案例
<script type="text/javascript">
$(function(){
//定义区域信息
var areas =
[
["海淀区","昌平区","朝阳区"],//代表北京
["南开区","和平区","西青区"],//天津
["浦东区","浦西区","闵行区"],//上海
["xx区","yy区","zz区"]//重庆
];
//下拉菜单绑定内容变化事件
$("#city").change(function(){
//获取被选中的option属性value的值
var $val = $("#city option:selected").val();
//获取数组,变成Jquery对象
var $area = $(areas[$val]);
//添加之前清空子标签
$("#area").empty();
$("#area").append($("<option>--请选择区域--</option>"));
//遍历数组
$area.each(function(index,element){
//创建option标签
var $optionElement = $("<option></option>");
$optionElement.html(element);
//添加到省份标签中
$("#area").append($optionElement);
});
});
/*
* 另一种简化写法
*/
$("#city").change(function(){
//获取被选中的option属性value的值
var $val = $("#city option:selected").val();
//获取数组,变成Jquery对象
var $area = $(areas[$val]);
//定义变量保存字符串
var options = "<option>--请选择区域--</option>";
$area.each(function(index,element){
options+="<option>"+element+"</option>";
});
$("#area").html(options);
});
});
</script>
左右互选案例
<script type="text/javascript">
$(function(){
//按钮add绑定点击事件
//左面选中的,移动到右边
$("#add").click(function(){
//获取右边 获取选中的
$("#second").append($("#first option:selected"));
});
//按钮addall绑定点击事件
//左面全部的,移动到右边
$("#add_all").click(function(){
//获取右边 获取全部的
$("#second").append($("#first option"));
});
$("#remove").click(function(){
//获取左边 获取右边选中的
$("#first").append($("#second option:selected"));
});
$("#remove_all").click(function(){
//获取左边 获取右边全部
$("#first").append($("#second option"));
});
});
</script>
表单校验插件
网络上有许多成熟的插件共使用者参考,插件就是将jquery实现的常用操作进行封装,封装
后的“小框架“就可以叫做插件,按照插件的语法去操作可以实现很多复杂 的功能,而我们需
要做的是学会该插件的使用语法即可。
我们仅是要使用的是jquery关于表单校验的插件。
validate快速入门
找到validate中的demo目录下的index.html. 按照提供的演示文档,快速编写自己的验证。
<scripttype="text/javascript">
$(function(){
//获取表单id,调用方法validate
$("#empForm").validate({
//定义验证规则
rules:{
//文本框的name属性,必须填写
realname:"required"
},
//定义验证信息
messages:{
//文本框name属性,违反规则的提示
realname:"真是姓名必填"
}
});
});
</script>
使用步骤
1. 下载jquery-validation插件
2. 将该插件(也就是一个js文件)导入到我们的工程中
3. 在要使用校验插件的html中引入该js文件
4. 编写表单校验的代码
$("form表单的选择器").validate({
rules:{
对哪个name进行校验
表单项name值:校验规则, ---校验规则有已经定义好的规则
表单项name值:校验规则... ...
},
messages:{
表单项name值:错误提示信息,
表单项name值:错误提示信息... ...
}
});
常用的校验规则

自定义表单验证
注意:当错误提示信息不按照我们预想的位置显示时,我们可以按照如下方式进行设置自定
义错误显示标签放在我们需要显示的位置,当此表单项验证不通过时会将此信息自动显示出
来,jquery验证插件会自动帮助我们控制它的显示与隐藏
<lable for="html元素name值" class="error" style="display:none">错误信息
</lable>
如果设置了错误lable标签就不必在messages中设置此表单项错误提示信息了
<script type="text/javascript">
$(function(){
//获取表单id,调用方法validate
$("#empForm").validate({
//定义验证规则
rules:{
//文本框的name属性,必须填写
realname:"required",
//用户名文本框验证,多个规则
username:{
//必须填写
required:true,
rangelength:[5,8]
},
//密码验证规则
psw:{
required:true,
minlength:6,
maxlength:12
},
//确认密码定义规则
psw2:{
required:true,
minlength:6,
maxlength:12,
equalTo:"#psw"
},
//性别选择定义规则
gender:{
required:true
},
//年龄验证规则
age:{
required:true,
range:[26,50]
},
//学历规则
//由option标签的value属性决定
edu:{
required:true
},
//生日规则
birthday:{
required:true,
//验证日期格式
dateISO:true,
//验证日期是否合法
date:true
},
//兴趣爱好规则
checkbox1:{
required:true
},
//电子邮箱规则
email:{
required:true,
email:true
}
},
//定义验证信息
messages:{
//文本框name属性,违反规则的提示
realname:"真是姓名必填",
username:{
required:"用户名必须填写",
rangelength:"用户名5-8位"
},
psw:{
required:"密码必须填写",
minlength:"最小长度6",
maxlength:"最大长度12"
},
psw2:{
required:"确认密码必须填写",
minlength:"最小长度6",
maxlength:"最大长度12",
equalTo:"两次密码不一致"
},
/*
* 性别提示规则
* 显示位置发生错误,手动在添加label标签
*/
gender:{
required:"请选择性别"
},
age:{
required:"请输入年龄",
range:"年龄在26-50之间"
},
edu:{
required:"请选择一个学历"
},
birthday:{
required:"请填写生日",
dateISO:"日期格式不正确",
date:"日期非法"
},
checkbox1:{
required:"请选择至少一个爱好"
},
email:{
required:"必须填写邮件",
email:"请输入正确的邮件格式"
}
}
});
});
</script>
自定义校验规则
如果预定义的校验规则尚不能满足需求的话可以进行自定义校验规则:
自定义校验规则步骤如下:
使用
$.validator.addMethod("**校验规则名称",function(value,element,params)){}**
在rules中通过校验规则名称使用校验规则
在messages中定义该规则对应的错误提示信息
其中: value是校验组件的value值
element是校验组件的节点对象
params是校验规则的参数
//身份证号规则
cart:{
required:true,
cartlength:[15,18],
cart15:true,
cart18:true
}
//参数: 规则名称. 参数 实现逻辑
//身份证号码长度
$.validator.addMethod( "cartlength", function(value,element,params){
if(value.trim().length!=15 && value.trim().length!=18){
return false;
}
return true;
} );
//身份证号码15位校验
$.validator.addMethod( "cart15", function(value,element,params){
//定义15位正则规则,必须全部数字
var reg = /^[0-9]{15}$/;
if(value.trim().length==15){
return reg.test(value.trim());
}
return true;
} );
//身份证号码18位校验
$.validator.addMethod( "cart18", function(value,element,params){
//定义15位正则规则,必须全部数字
var reg = /^[0-9]{18}|[0-9]{17}X$/;
if(value.trim().length==18){
return reg.test(value.trim());
}
return true;
} );
JQuery的入门(二)的更多相关文章
- jQuery简单入门(二)
2.Dom操作 A.DOM分类 个人认为在jQuery中这些分类被弱化了,有兴趣的读者可以自行补充这方面的知识: aa.DOM Core bb.HTML -DOM cc. CSS-DOM B.jQue ...
- jquery 快速入门二
---恢复内容开始--- 操作标签 样式操作 样式类 addClass();//添加指定的CSS类名. removeClass();//移除指定的类名. hasClass();//判断样式不存在 to ...
- 从零开始学习jQuery (一) 入门篇
本系列文章导航 从零开始学习jQuery (一) 入门篇 一.摘要 本系列文章将带您进入jQuery的精彩世界, 其中有很多作者具体的使用经验和解决方案, 即使你会使用jQuery也能在阅读中发现些 ...
- 第一百九十一节,jQuery EasyUI 入门
jQuery EasyUI 入门 学习要点: 1.什么是 jQuery EasyUI 2.学习 jQuery EasyUI 的条件 3.jQuery EasyUI 的功能和优势 4.其他的 UI 插件 ...
- day 48 jQuery快速入门
jQuery快速入门 jQuery jQuery介绍 1.jQuery是一个轻量级的.兼容多浏览器的JavaScript库. 2.jQuery使用户能够更方便地处理HTML Document.Ev ...
- JQuery Mobile入门——设置后退按钮文字(转)
http://www.tuicool.com/articles/AZnYVz JQuery Mobile入门——设置后退按钮文字 时间 2013-01-09 20:24:28 CSDN博客原文 h ...
- 【原创】NIO框架入门(二):服务端基于MINA2的UDP双向通信Demo演示
前言 NIO框架的流行,使得开发大并发.高性能的互联网服务端成为可能.这其中最流行的无非就是MINA和Netty了,MINA目前的主要版本是MINA2.而Netty的主要版本是Netty3和Netty ...
- 极客技术专题【007期】:jQuery初学者入门 - jQuery Event
日期:2013-8-19 来源:GBin1.com 技术专题介绍 专题:jQuery初学者入门[第三讲:jQuery Event] 分享人:极客标签技术编辑 -Lana (请站内关注分享人) 授课时 ...
- Swift语法基础入门二(数组, 字典, 字符串)
Swift语法基础入门二(数组, 字典, 字符串) 数组(有序数据的集) *格式 : [] / Int / Array() let 不可变数组 var 可变数组 注意: 不需要改变集合的时候创建不可变 ...
随机推荐
- python:使用Djangorestframework编写post和get接口
1.安装django pip install django 2.新建一个django工程 python manage.py startproject cainiao_monitor_api 3.新建一 ...
- 考前最后的感叹:CSP2019 Bless All! & AFO
因为没有退路,所以勇往直前. ----来自高二老年选手小蒟蒻XY Upd:凉凉了,你们都稳了...我看来是超不过准考证号了qwq[大哭] Upd:来自联考txdy的神仙gcz Upd:久远的回忆:会不 ...
- javascript获取地址栏参数的方法
javascript获取地址栏参数的方法<pre>function GetQueryString(name){ var reg = new RegExp("(^|&)&q ...
- 《PHP - 信号/基本操作/配置》
一:PHP 信号 - SIGINT / SIGTERM / SIGQUIT - 退出FPM,在master收到退出信号后将向所有的worker进程发送退出信号,然后master退出. - SIGUSR ...
- SpringMVC笔记2
响应数据和结果视图 返回值分类 1.返回值是String 返回值类型是字符串的,会根据返回的字符串去寻找相对应的jsp页面 @Controller @RequestMapping("/use ...
- java实现rabbitMQ消息收发方式
定义:消息队列(MQ)是一种应用程序对应用程序的通信方法是AMQP协议. jar包依赖: <!-- 加入mq消息依赖包 --> <dependency> &l ...
- Winform 快速开发框架,上位机开发,工控机程序开发,CS程序开发
1.当客户让你做个CS程序时,当你手上一穷二白,所有都要重复造轮,你是不是很烦. 2.但如果有一个通用的,快速开发框架,就可以把你从这些基础的工作解救出来,你专注做业务就好了. 3.本人其中一个项目的 ...
- jwt 0.9.0(三)jwt客户端存储状态可行性分析,及Java代码案例
Jwt客户端存储状态可行性分析 1.前端首次访问后台,后台生成token,放在http header的Authorization里(官网推荐,可解决跨域cookie跨域问题),并且Authorizat ...
- Java 平衡二叉树和AVL
与BST<> 进行对比 import java.util.ArrayList; import java.util.Collections; public class Main { pu ...
- Maven 的依赖范围
Maven 在编译项目主代码的时候需要使用一套 classpath,在编译和执行测试的时候会使用另外一套 classpath.最后,实际运行 Maven 项目的时候,又会使用一套 classpath. ...