- 概述
- jQuery是一个优秀的javascript框架(js类库),兼容css3和各大浏览器,提供dom,events,animate,ajax等简易的操作。并且jQuery有非常丰富的插件,大多数功能都有相应的插件解决方案。jQuery的宗旨是write less, do more. (写的更少,做的更多)
- jQuery入门
- jQuery和html整合
- 下载
- 下载地址:www.jquery.com
- 使用script的src属性即可
"eg:<script src="../js/jquery-1.11.0.min.js"></script>"
- 语法
- $("选择器") 或 jQuery("选择器")
"var 元素对象 = $("选择器");
$("#id值"); val();"
- javaScript和jquery区别
- 注意事项:
"使用jquery的方式获取的对象称为jquery对象,
使用js的方式获取的对象称为dom(js)对象,
两者的方法和属性不能混用,
使用jquery的方法和属性时,必须保证对象是jquery对象."
- js对象和jquery对象之间的转换
- js对象 → jquery对象
- $(js对象);
- jquery对象 → js对象
- 方式1:jQuery对象[index]
- 方式2:jQuery对象.get(index)
- 事件(event)
"在js的事件中,事件前加on,在jq的事件中通常没有on,直接写名称即可"
- 页面加载成功事件
- 格式1:$(document).ready(function(){});
- 格式2:$(function(){});
- 注意:在同一个页面内,jquery的页面加载成功事件可以出现多次,从上到下依次执行,js的页面加载成功事件只能出现一次,即使出现多次,也只有最后一个生效
- 重点事件
- click
- change
- submit
- focus
- blur
- jquery事件和事件源的绑定
"要保证页面加载成功后,才能使用jq的事件"
- jquery对象.事件名称(function(){});
- jQuery的选择器
- 基本选择器:★
- * 所有
- # id
- .class
- 标签选择器(标签名)
- 多个选择器用","号隔开 a,b
- 层次选择器:★
- a b:选择a的b的后代
- a>b:选择a的b孩子
- a+b:选择a的b大弟弟
- a~b:选择a的所有的b弟弟
- 基本过滤:
- :first 第一个
- :last 最后一个
- :even 偶数
- :odd 奇数
- :eq(index) 索引=
- :gt(index) 索引>
- :lt(index) 索引<
- :not(选择器)
- 内容过滤:
- :has(选择器):包含
- 可见性过滤:
- :hidden:不可见 主要针对的是 文本隐藏域和指定display=none
- :visible:可见
- 属性选择器★
- [属性名]:有指定属性的元素
- [属性名='值']:有指定属性和值的元素
- 表单对象属性★
- :enabled 可用的
- :disabled 不可用的
- :checked 选中的(针对的是单选框和复选框)
- :selected 选中的(下拉选)
- 表单:
- :input:选择所有的表单子标签
"input:选中所有input标签
select textarea button"
- input select textarea button
- jQuery的DOM操作
- jQuery效果:
- 基本:★ 高和宽都变化
- hide([毫秒值]):隐藏
- show([毫秒值]):显示
- toggle([毫秒值]):切换
- 滑入滑出:高变化
- slideUp([毫秒值]):滑出
- slideDown([毫秒值]):滑入
- slideToggle([毫秒值]);切换
- 淡入淡出:
- fadeIn([毫秒值]);
- fadeOut([毫秒值]);
- fadeToggle();切换
- 了解:
- fadeToggle(毫秒值,function(){});
- 以上效果都可以添加一个回调函数
- css样式
- css
- 设置css样式
- 格式1:设置单个属性
"jq对象.css("属性","值");"
- 格式2:设置多个属性
"jq对象.css({
"属性":"值",
"属性1":"值1"
});"
- 获取css样式的值
" jq对象.css("属性名称");"
- 获取元素的宽和高
- jq对象.width()
- jq对象.height()
- 扩展:offset()
"获取元素在当前页面的位置"
- top
"元素距离顶部的距离"
- left
"元素距离左边的距离"
- 属性
- attr():设置或者获取元素的属性
- 设置属性(给标签添加属性)
- 格式1:设置单个属性
"jq对象.attr("属性名","值");"
- 格式2:设置多个属性
"jq对象.attr({
"属性":"值",
"属性1":"值1"
});"
- 获取属性的值
" jq对象.attr("属性名");"
- 移出属性(删除属性)
" jq对象.removeAttr("属性名");"
- prop():使用方式和attr一样,优先使用attr方法,若attr方法不能用,换prop方法(版本升级后的产物)
- class操作 了解
- 元素.addClass("属性值");添加
- 元素.removeClass():移除指定的样式
- 元素.toggleClass("属性值"):切换
*/
/*
回顾:
jQuery:js类库(js框架)对js进行封装,本质上就是外部的js文件.
jQuery和html整合:
1.下载
2.通过script标签的src属性引入即可(1.11)
jQuery语法:
$("选择器"); 或 jQuery("选择器");
jq对象和js对象转换
jq ===> js(dom)
jq对象[index]
jq对象.get(index);
js ===> jq对象
$(js对象);
事件:
click:
submit:
change:
focus:
blur:
页面加载成功:
$(function(){});
$(document).ready(function(){});
选择器:
基本选择器:
*
#id
.class
标签名称
多个选择器之间使用逗号
层次选择器:
a b
a>b
a+b
a~b
基本过滤选择器:
:first
:last
:even
:odd
:eq(index)
:gt(index)
:lt(index);
:not(选择器)
内容过滤选择器:
has(选择器);
可见性过滤选择器:
:hidden type="hidden" display = "none"
:visible
属性选择器:
[属性]
[属性='值']
表单对象选择器:
:enabled
:disabled
:selected 下拉选
:checked 单选框个复选框
表单选择器:
:input
input select textarea button
DOM:
效果:
基本效果:
hide()
show()
toggle()
滑入滑出:
slideUp();
slideDown();
slideToggle();
淡入淡出:
fadeIn();
fadeOut();
fadeToggle([毫秒值],回调函数);
操作css样式:
设置:
设置单个:
jq对象.css("属性名称","值");
设置多个:
jq对象.css({
"属性名称":"值",
"属性名称":"值"
});
获取:
jq对象.css("属性名称");
获取宽和高:
width();
height();
获取位置:
offset();
top:
left:
操作属性:
attr:
设置属性:
设置单个:
jq对象.attr("属性名称","值");
设置多个:
jq对象.attr({
"属性名称":"值",
"属性名称":"值"
});
删除:
removeAttr("属性名称");
prop:如果attr不好使使用prop代替
操作class:
addClass("class属性的值");
removeClass();
classToggle("class属性的值");
/////////////////////////////////////////////
案例1-省市联动
需求分析:
当省份改变的时候,根据选中的省份查询其所对应的市数组,遍历市数组,将每一个市拼成option插入到市的下拉选中.
技术分析:
事件
jq遍历
jq对DOM操作
/////////////////////////
步骤分析:
1.确定事件(改变事件)
给省份的下拉选添加改变事件
2.编写改变事件函数
//a.获取省份的value的值
//b.获取所对应的市数组
//c.获取市的下拉选对象
//d.遍历市数组,将每一个市拼成option插入到市的下拉选中
案例2-左右选择
需求分析:
当点击不同的按钮时,根据按钮的需求将左边或右边的option插入到对面的下拉选中.
技术分析:
事件
文档处理
////////////////////
步骤分析:
1.确定事件(单击事件)
给按钮派发单击事件
2.编写函数
//a.将左边选中的第一个插入到右边
案例3-表单校验
需求分析:
通过使用validate插件来完成表单校验.
技术分析:
validate插件
//////////////////
扩展案例-模拟分组
//////////////////
day31jQuery
- jQuery遍历
- 方式1:jQuery的对象方法
- 格式:
" jq对象.each(function([index],[dom对象]){
对遍历到每个元素的操作
});"
- 方式2:全局函数
- 格式:
"$.each(要遍历的jquery对象,function([index],[dom对象]){
});
$.each(数组,function(){
});"
案例:
//方式1:jq对象的方法
$("#b1").click(function(){
//获取当前页面的文本隐藏域,并打印他们的value值
//[e1,e2,e3,e4] 存放的是dom(js)对象
$("input:hidden").each(function(index,ele){
// alert(index+" "+ele.value+" "+$(ele).val());
alert(this.value);
});
});
//方式2:全局遍历
$("#b2").click(function(){
//获取要遍历的对象
var $hideObj = $("input:hidden");
$.each($hideObj, function(index,ele) {
alert(index+" "+ele.value+" "+$(ele).val()+" "+this.value);
});
});
//js对象
var arr = new Array(1,2,3,"tom");
$("#b3").click(function(){
// $.each(arr, function(index,ele) {
// alert(index+" "+ele+" "+this);
// });
$(arr).each(function(index,ele){
alert(index+" "+ele+" "+this);
});
});
});
- jQueryDOM操作
- HTML代码/文本/值 ★
- val() : 对value属性的操作
- jq对象.val(); 获取value属性的值
- jq对象.val("值"); 设置value属性的值
- html() : 对标签体的操作
- jq对象.html(); 获取标签体的内容
- jq对象.html("值"); 设置标签体的内容
- text() : 对标签体的操作
- jq对象.text(); 获取标签体的内容
- jq对象.text("值"); 设置标签体的内容
- html和text区别
"设置内容: html可以将内容解析,text只是作为普通文本
获取内容:html获取所有源码内容,text只是获取文本内容"
- 文档处理
- 内部插入:
- append a.append(c) 将c插入到a的内部的后面
- prepend a.prepend(c) 将c插入到a的内部的前面
- appendTo a.appendTo(c) 将a插入到c的内部的后面
- prependTo a.prependTo(c)将a插入到c的内部的前面
内插入案例:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>01_内部插入节点.html</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<script type="text/javascript" src="../js/jquery-1.11.0.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
//0.获取要操作的对象
var $city = $("#city");
var $fk = $("#fk");
//1.在city内部的后面追加 反恐
//向指定标签内部的前面进行插入
// $city.append($fk);
// $fk.appendTo($city);
//2.在city内部的前面插入 反恐
//向指定标签内部的后面进行插入
// $city.prepend($fk);
$fk.prependTo($city);
});
</script>
</head>
<body>
<ul id="city">
<li id="bj" name="beijing">北京</li>
<li id="tj" name="tianjin">天津</li>
<li id="cq" name="chongqing">重庆</li>
</ul>
<ul id="love">
<li id="fk" name="fankong">反恐</li>
<li id="xj" name="xingji">星际</li>
</ul>
</body>
<script type="text/javascript">
</script>
</html>
$(document).ready(function() {
//1 获取 username的value属性的值
// alert($("[name='username']").val());
//2 设置 username的默认值为"许多多"
$("[name='username']").val("许多多");
//3通过html获取div标签体的内容
// alert($("div").html());
//4通过html设置div标签体的内容
// $("div").html("已满18,请戴眼镜...");
//5通过text获取div标签体的内容
// alert($("div").text());
//6通过text设置div标签体的内容
// $("div").text("已满18,请戴眼镜!!!!");
//7 两者设置值的区别
//html在设置内容时,可以解析html标签
$("div").html("<font color='red'>已满18,请戴眼镜...</font>");
//text在设置内容时,原样设置
// $("div").text("<font color='red'>已满18,请戴眼镜...</font>");
//8 两者获取值的区别
//html在获取时,原样获取(不会解析任何标签)
// alert($("div").html());
//text在获取时,会解析标签,仅仅获取文本内容
// alert($("div").text());
}); $(document).ready(function() {
//1 获取 username的value属性的值
// alert($("[name='username']").val());
//2 设置 username的默认值为"许多多"
$("[name='username']").val("许多多");
//3通过html获取div标签体的内容
// alert($("div").html());
//4通过html设置div标签体的内容
// $("div").html("已满18,请戴眼镜...");
//5通过text获取div标签体的内容
// alert($("div").text());
//6通过text设置div标签体的内容
// $("div").text("已满18,请戴眼镜!!!!");
//7 两者设置值的区别
//html在设置内容时,可以解析html标签
$("div").html("<font color='red'>已满18,请戴眼镜...</font>");
//text在设置内容时,原样设置
// $("div").text("<font color='red'>已满18,请戴眼镜...</font>");
//8 两者获取值的区别
//html在获取时,原样获取(不会解析任何标签)
// alert($("div").html());
//text在获取时,会解析标签,仅仅获取文本内容
// alert($("div").text());
});
- 外部插入:
- after a.after(c) 在a的后面插入c
- before a.before(c) 在a的前面插入c
- insertAfter a.insertAfter(c) 将a插入到c的后面
- insertBefore a.insertBefore(c) 将a插入到c的前面
案例:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>02_外部插入节点.html</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<script type="text/javascript" src="../js/jquery-1.11.0.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
//0.获取要操作的对象
var $city = $("#city");
var $p2 = $("#p2");
//1.在 p2 的后面插入 city
//在指定的标签的后面进行插入
// $p2.after($city);
// $city.insertAfter($p2);
//2.在 p2 的前面插入 city
//在指定的标签的前面进行插入
// $p2.before($city);
$city.insertBefore($p2);
});
</script>
</head>
<body>
<ul id="city">
<li id="bj" name="beijing">北京</li>
<li id="tj" name="tianjin">天津</li>
<li id="cq" name="chongqing">重庆</li>
</ul>
<p id="p3">I would like to say: p3</p>
<p id="p2">I would like to say: p2</p>
<p id="p1">I would like to say: p1</p>
</body>
<script type="text/javascript">
</script>
</html>
- 删除:
- empty():清空元素 (清空所有的子标签)
- remove():移除 (自杀)
删除案例:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>03_删除节点.html</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<script type="text/javascript" src="../js/jquery-1.11.0.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
//0.获取要 操作的对象
var $ul = $("#city");
//1.清空ul
// $ul.empty();
//2.移除ul
$ul.remove();
});
</script>
</head>
<body>
<ul id="city">
<li id="bj" name="beijing">北京
<p>海淀区</p>
</li>
<li id="tj" name="tianjin">天津
<p>河西区</p>
</li>
<li id="cq" name="chongqing">重庆</li>
</ul>
<p class="hello">Hello</p> how are
<p>you?</p>
</body>
<script type="text/javascript">
</script>
</html>
- jQuery的事件总结
- 事件切换(知道)
- hover:相当于给一个元素添加了mouseover和mouseout两个事件
"jq元素对象.hover(function(){
//第一个函数相当于mouseover
},function(){
//第二个函数相当于mouseout
});"
- toggle:相当于给一个元素添加了单击事件,轮流执行多个函数(兼容性有问题jquery1.8版本之前支持)
"jq元素.toggle(function(){},function(){}...);"
案例:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript" src="../js/jquery-1.11.0.min.js" ></script>
<!--<script type="text/javascript" src="../js/jquery-1.8.3.min.js" ></script>-->
<script type="text/javascript">
$(function(){
$("#divId").hover(function(){
//相当于mouseover
$(this).html("mouseover事件被触发了");
},function(){
//相当于mouseout
$(this).html("mouseout事件被触发了....");
});
$("#bId").toggle(function(){
alert(1);
},function(){
alert(2);
},function(){
alert(3);
});
});
</script>
</head>
<body>
<input type="button" id="bId" value="点击查看" /><br>
<div id="divId" style="border:1px solid red;height:100px;width:100px">事件切换</div>
</body>
</html>
- 常见事件
- submit 表单提交事件★
- focus 获得焦点事件 ★
- blur 失去焦点 ★
- change 改变 ★
- click 单击 ★
- dblclick 双击
- keydown 键盘按下
- keyup 键盘弹起
- keypress 键盘按下并弹起
- mousedown 鼠标按下
- mouseup 鼠标弹起
- mousemove 鼠标移入
- mouseout 鼠标移出
- mouseover 鼠标悬停
- 事件和事件源的绑定 ★
- jq对象.事件名称(function(){});
- validate插件
"插件:指的就是别人已经写好的功能代码,直接引入使用即可.
"
- 作用:对表单进行校验
- 下载:
"下载路径:http://jqueryvalidation.org/files/jquery-validation-1.15.0.zip"
- 使用方式:
- 1.导入jquery.js
"validate是基于jquery写的,所以要先导入jquery的js文件"
- 2.再导入validate.js
"想要使用别人的插件就必须的导入人家已经写好的js文件(插件)"
- 3.在页面加载成功后,要确定对页面上的哪个表单进行校验
" $(function(){
表单对象.validate();
});"
- 4.validate使用格式:
" 表单对象.validate({
rules:{}, //校验规则
messages:{} //提示信息
});"
- 5.常见的校验规则
- 校验器名称 描述 值
- required: 必须填写 true|false
- number: 只能输入数字 true|false
- min: 最小值 数字
- max: 最大值 数字
- range: 取值范围 [min,max]
- minlength: 最小长度 数字
- maxlength: 最大长度 数字
- rangelength: 长度范围 [minlength,maxlength]
- equalTo: 和谁相等 通过jQuery选择器选中指定元素对象
- email: 校验邮箱 "email"
- 6.rules校验器语法:
- 方式1:单一校验
"name属性的值:"校验器""
- 方式2:多个校验
" name属性的值:{
校验器1:值1,
校验器2:值2
}"
- 7.messages自定义提示信息语法:
- 方式1:
"name属性的值:"提示信息""
- 方式2:
" name属性的值:{
校验器1:"提示信息1",
校验器2:"提示信息2"
}"
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<!--1.导入jq的js文件-->
<script type="text/javascript" src="../js/jquery-1.11.0.min.js" ></script>
<!--2.导入validate的js文件-->
<script type="text/javascript" src="../js/jquery.validate.js" ></script>
<script type="text/javascript" src="../js/messages_zh.js" ></script>
<script>
/*3.在页面加载成功之后,锁定要校验的表单对象*/
$(function(){
//锁定要校验的表单对象,调用validate方法
$("#formId").validate({
rules:{
//单一校验规则
// username:"required",
// //多个校验规则
// password:{
// required:true,
// number:true
// },
// repassword:{
// required:true,
// number:true,
// equalTo:"[name='password']"
// },
// zuixiaozhi:{
// required:true,
// min:180
// },
// shuzhiqujian:{
// required:true,
// range:[18,26]
// }
card:{
required:true,
cardLength:true
}
}, //校验规则
messages:{
// username:"<font color='red'>用户名不可为空</font>",
// password:{
// required:"密码不可为空",
// number:"密码只能为数字"
// },
// zuixiaozhi:{
// min:"请输入不小于{0}的值啊...."
// },
// shuzhiqujian:{
// range:"请输入年龄在{0}到{1}之间的年龄"
// }
card:{
cardLength:"请输入16或18位的数字"
}
} //提示信息
});
});
//编写自定义校验器
$.validator.addMethod("cardLength",function(val,ele,par){
if(par){
if(val.length==16||val.length==18){
return true;
}
return false;
}else{
return true;
}
},"输入的不合法");
</script>
</head>
<body>
<form id="formId" action="">
必填:<input type="text" name="username" /> <br/> 必填数字:
<input type="text" name="password" /> <br /> 必填重复:
<input type="text" name="repassword" /> <br /> 最小值:
<input type="text" name="zuixiaozhi" /> <br /> 区间:
<input type="text" name="shuzhiqujian" /> <br />
身份证长度:<input type="text" name="card" /> <br />
<input type="submit" value="提交" />
</form>
</body>
</html>
- 自定义校验器
- 格式:
- $.validator.addMethod(name,function(value,element,params){},"message");
- 参数说明:
- name:校验器的名称,唯一
- function:校验规则
- value:用户输入的值
- element:要校验的dom对象
- params:校验器的值
- message:当不满足校验规则时的提示信息
- 扩展:
- 筛选-查找;
- children(["选择器"]): 所有孩子
- parent(): 父母
- find("选择器"): 查找后代
- next(): 下个兄弟 +
- nextAll(): 所有的弟弟 ~
- prev(): 小哥哥
- prevAll(): 哥哥们
- siblings(): 兄弟们
- 筛选-过滤
- is("选择器"):判断是否满足 返回Boolean
查找案例:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>05-可见性过滤选择器.html</title>
<!-- 引入jQuery -->
<script src="../js/jquery-1.11.0.min.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript" src="../js/assist.js" ></script>
<link rel="stylesheet" type="text/css" href="../css/style.css" />
<script type="text/javascript">
$(document).ready(function() {
//<input type="button" value=" 选择 id=two 所有子元素" id="b1" />
$("#b1").click(function(){
$("#two").children().css("background-color","#ff0");
});
//<input type="button" value=" 选择 id=two 子元素title=other 元素 " id="b2" />
$("#b2").click(function(){
// $("#two").children("[title=other]").css("background-color","#ff0");
$("#two").find("[title=other]").css("background-color","#ff0");
});
//<input type="button" value=" 选择 id=two 下一个兄弟" id="b3" />
$("#b3").click(function(){
$("#two").next().css("background-color","#ff0");
});
//<input type="button" value=" 选择 id=two 后面的所有兄弟" id="b4" />
$("#b4").click(function(){
$("#two").nextAll().css("background-color","#ff0");
});
//<input type="button" value=" 选择 id=two 上一个兄弟" id="b5" />
$("#b5").click(function(){
$("#two").prev().css("background-color","#ff0");
});
//<input type="button" value=" 选择 id=two 前面的所有兄弟" id="b6" />
$("#b6").click(function(){
$("#two").prevAll().css("background-color","#ff0");
});
//<input type="button" value=" 选择 id=two 所有兄弟" id="b7" />
$("#b7").click(function(){
$("#two").siblings().css("background-color","#ff0");
});
//<input type="button" value=" 选择 id=two 父元素" id="b8" />
$("#b8").click(function(){
$("#two").parent().css("background-color","#ff0");
});
});
</script>
</head>
<body>
<h3>可见性过滤选择器.</h3>
<button id="reset">手动重置页面元素</button>
<input type="checkbox" id="isreset" checked="checked" /><label for="isreset">点击下列按钮时先自动重置页面</label>
<br/><br/>
<input type="button" value=" 选择 id=two 所有子元素" id="b1" />
<input type="button" value=" 选择 id=two 子元素title=other 元素 " id="b2" />
<input type="button" value=" 选择 id=two 下一个兄弟" id="b3" />
<input type="button" value=" 选择 id=two 后面的所有兄弟" id="b4" />
<input type="button" value=" 选择 id=two 上一个兄弟" id="b5" />
<input type="button" value=" 选择 id=two 前面的所有兄弟" id="b6" />
<input type="button" value=" 选择 id=two 所有兄弟" id="b7" />
<input type="button" value=" 选择 id=two 父元素" id="b8" />
<br /><br />
<!--文本隐藏域-->
<input type="hidden" value="hidden_1">
<input type="hidden" value="hidden_2">
<input type="hidden" value="hidden_3">
<input type="hidden" value="hidden_4">
<div class="one" id="one">
id为one,class为one的div
<div class="mini">class为mini</div>
</div>
<div class="one" id="two" title="test">
id为two,class为one,title为test的div.
<div class="mini" title="other">class为mini,title为other</div>
<div class="mini" title="test">class为mini,title为test</div>
</div>
<div class="one">
<div class="mini">class为mini</div>
<div class="mini">class为mini</div>
<div class="mini">class为mini</div>
<div class="mini" title="tesst">class为mini,title为tesst</div>
</div>
<div style="display:none;" class="none">style的display为"none"的div</div>
<div class="hide">class为"hide"的div</div>
<span id="mover">正在执行动画的span元素.</span>
</body>
</html>
过滤案例:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>05-可见性过滤选择器.html</title>
<!-- 引入jQuery -->
<script src="../js/jquery-1.11.0.min.js" type="text/javascript" charset="utf-8"></script>
<script src="../js/assist.js" type="text/javascript"></script>
<link rel="stylesheet" type="text/css" href="../css/style.css" />
<script type="text/javascript">
$(document).ready(function() {
$("#b6").click(function(){
//判断样式为hide的div 下一个兄弟是否是span
var flag = $("div:hidden").next().is("span");
alert(flag);
});
});
</script>
</head>
<body>
<h3>可见性过滤选择器.</h3>
<button id="reset">手动重置页面元素</button>
<input type="checkbox" id="isreset" checked="checked" /><label for="isreset">点击下列按钮时先自动重置页面</label>
<br/><br/>
<input type="button" value=" 判断样式为hide的div 下一个兄弟是否是span" id="b6" />
<br /><br />
<!--文本隐藏域-->
<input type="hidden" value="hidden_1">
<input type="hidden" value="hidden_2">
<input type="hidden" value="hidden_3">
<input type="hidden" value="hidden_4">
<div class="one" id="one">
id为one,class为one的div
<div class="mini">class为mini</div>
</div>
<div class="one" id="two" title="test">
id为two,class为one,title为test的div.
<div class="mini" title="other">class为mini,title为other</div>
<div class="mini" title="test">class为mini,title为test</div>
</div>
<div class="one">
<div class="mini">class为mini</div>
<div class="mini">class为mini</div>
<div class="mini">class为mini</div>
<div class="mini" title="tesst">class为mini,title为tesst</div>
</div>
<div style="display:none;" class="none">style的display为"none"的div</div>
<div class="hide">class为"hide"的div</div>
<span id="mover">正在执行动画的span元素.</span>
</body>
</html>
用户分组案例:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script src="../js/jquery-1.11.0.min.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
</script>
<style type="text/css">
div * {
display: block;
width: 200px;
}
div span {
background-color: #0f0;
}
</style>
<script>
$(function(){
//给span派发单击事件
$("span").click(function(){
//将span后面的a标签显示或隐藏
$(this).nextAll().toggle();
$(this).parent().siblings().find("a").hide();
});
});
</script>
</head>
<body>
<div>
<span>三国好友</span>
<a>曹操</a>
<a>刘备</a>
<a>周瑜</a>
</div>
<div>
<span>笑傲好友</span>
<a>东方不败</a>
<a>向问天</a>
<a>任我行</a>
</div>
<div>
<span>水浒好友</span>
<a>行者武松</a>
<a>豹子头</a>
<a>急先锋</a>
</div>
</body>
</html>
省市联动案例:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script>
// 定义二维数组:
var arr = new Array(4);
arr[0] = new Array("石家庄", "邯郸", "保定", "秦皇岛");
arr[1] = new Array("郑州市", "洛阳市", "安阳市", "南阳市");
arr[2] = new Array("沈阳市", "锦州市", "大连市", "铁岭市");
arr[3] = new Array("长春市", "吉林市", "四平市", "通化市");
</script>
<script src="../js/jquery-1.11.0.min.js"></script>
<script type="text/javascript">
$(function() {
/* 步骤分析:
1.确定事件(改变事件)
给省份的下拉选添加改变事件
2.编写改变事件函数
//a.获取省份的value的值
//b.获取所对应的市数组
//c.获取市的下拉选对象
//d.遍历市数组,将每一个市拼成option插入到市的下拉选中*/
$("[name=pro]").change(function(){
//a.获取省份的value的值
// alert(this.value);
//b.获取所对应的市数组
var cityArr = arr[this.value];
// alert(cityArr);
//c.获取市的下拉选对象
var $cityObj = $("#city");
//初始化
$cityObj.html("<option>=请选择=</option>");
//d.遍历市数组,将每一个市拼成option插入到市的下拉选中
$.each(cityArr, function() {
// $cityObj.append("<option>"+this+"</option>");
$("<option>"+this+"</option>").appendTo($cityObj);
});
});
});
</script>
</head>
<body>
<form action="#" method="get">
<input type="hidden" name="id" value="007" /> 姓名:
<input name="username" value="xuduoduo" /><br> 密码:
<input type="password" name="password" value="123" disabled="disabled"><br> 性别:
<input type="radio" name="sex" value="1" checked="checked">男
<input type="radio" name="sex" value="0">女
<br> 爱好:
<input type="checkbox" name="hobby" value="eat">吃
<input type="checkbox" name="hobby" value="drink" checked="checked">喝
<input type="checkbox" name="hobby" value="sleep" checked="checked">睡
<br> 头像:
<input type="file" name="photo"><br> 籍贯:
<select name="pro">
<option>--请选择--</option>
<option value="0">河北</option>
<option value="1">河南</option>
<option value="2">辽宁</option>
<option value="3">吉林</option>
</select>省
<select id="city">
<option>-请选择-</option>
</select>市
<br> 自我介绍:
<textarea name="intr" cols="40" rows="4">good!</textarea>
<br>
<input type="submit" value="保存" />
<input type="reset" />
<input type="button" value="普通按钮" />
</form>
</body>
</html>
<!--
-->
左右选中案例:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>左右选中.html</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<style>
input[type='button'] {
width: 50px;
}
</style>
<script type="text/javascript" src="../js/jquery-1.11.0.min.js"></script>
<script type="text/javascript">
$(function(){
/* 步骤分析:
1.确定事件(单击事件)
给按钮派发单击事件
2.编写函数
//a.将左边选中的第一个插入到右边*/
$("#toRight1").click(function(){
//a.将左边选中的第一个插入到右边
$("#left option:selected:first").appendTo($("#right"));
});
$("#toRight2").click(function(){
//a.将左边选中的插入到右边
$("#left option:selected").appendTo($("#right"));
});
$("#toRight3").click(function(){
//a.将左边选中的插入到右边
$("#left option").appendTo($("#right"));
});
});
</script>
</head>
<body>
<table>
<tr>
<td>
<select id="left" multiple="true" style="width:100px" size="10">
<option>環</option>
<option>芈</option>
<option>琅</option>
<option>琊</option>
<option>爨</option>
<option>甄</option>
<option>槑</option>
<option>夔</option>
</select>
</td>
<td>
<input type="button" value=">" id="toRight1"><br>
<input type="button" value=">>" id="toRight2"><br>
<input type="button" value=">>>" id="toRight3"><br><br>
<input type="button" value="<" id="toLeft1"><br>
<input type="button" value="<<" id="toLeft2"><br>
<input type="button" value="<<<" id="toLeft3">
</td>
<td>
<select id="right" multiple="multiple" style="width:100px" size="10">
</select>
</td>
</tr>
</table>
</body>
</html>
表单效验案例:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript" src="../js/jquery-1.11.0.min.js" ></script>
<script type="text/javascript" src="../js/jquery.validate.js" ></script>
<script type="text/javascript" src="../js/messages_zh.js" ></script>
<script>
$(function(){
$("#formid").validate({
rules:{
username:{
required:true
},
email:{
required:true,
email:"email"
},
sex:{
required:true
}
},
messages:{
username:{
required:"用户名不可为空"
}
}
});
});
</script>
</head>
<body>
<form action="#" method="get" id="formid">
<table width="60%" height="60%" align="center" bgcolor="#ffffff">
<tr>
<td colspan="3">会员注册USER REGISTER</td>
</tr>
<tr>
<td width="20%">用户名:</td>
<td width="80%"><input type="text" name="username" id="username"></td>
</tr>
<tr>
<td>密码:</td>
<td><input type="password" name="password" id="password"></td>
</tr>
<tr>
<td>确认密码:</td>
<td><input type="password" name="repassword" id="repassword"></td>
</tr>
<tr>
<td>Email:</td>
<td><input type="text" name="email" id="email"></td>
</tr>
<tr>
<td>姓名:</td>
<td><input type="text" name="name"></td>
</tr>
<tr>
<td>性别:</td>
<td>
<input type="radio" name="sex" value="男"> 男
<input type="radio" name="sex" value="女" />女
<label for="sex" class="error"></label>
</td>
</tr>
<tr>
<td>出生日期</td>
<td>
<input type="date" name="birthday">
</td>
</tr>
<tr>
<td>验证码</td>
<td>
<input type="text" name="checkcode">
</td>
</tr>
<tr>
<td colspan="2">
<input type="submit" value="注册" />
</td>
</tr>
</table>
</form>
</body>
</html>