小白学习之路(JavaWeb篇)之 JQuery(下)
JQuery(下)
1、jQuery 的属性操作
jQuery 属性操作
html() 它可以设置和获取起始标签和结束标签中的内容。 跟 dom 属性 innerHTML 一样。 text() 它可以设置和获取起始标签和结束标签中的文本。 跟 dom 属性 innerText 一样。 val() 它可以设置和获取表单项的 value 属性值。 跟 dom 属性 value 一样
val 方法同时设置多个表单项的选中状态:
<!DOCTYPE html>
<html lang="zh_CN">
<head><meta charset="UTF-8"><title>Title</title><script type="text/javascript" src="script/jquery-1.7.2.js"></script><script type="text/javascript">$(function () {/*// 批量操作单选$(":radio").val(["radio2"]);// 批量操作筛选框的选中状态$(":checkbox").val(["checkbox3","checkbox2"]);// 批量操作多选的下拉框选中状态$("#multiple").val(["mul2","mul3","mul4"]);// 操作单选的下拉框选中状态$("#single").val(["sin2"]);
*/$("#multiple,#single,:radio,:checkbox").val(["radio2","checkbox1","checkbox3","mul1","mul4","sin3"]);});</script>
</head>
<body>
<body>单选:<input name="radio" type="radio" value="radio1" />radio1<input name="radio" type="radio" value="radio2" />radio2<br/>多选:<input name="checkbox" type="checkbox" value="checkbox1" />checkbox1<input name="checkbox" type="checkbox" value="checkbox2" />checkbox2<input name="checkbox" type="checkbox" value="checkbox3" />checkbox3<br/>下拉多选 :<select id="multiple" multiple="multiple" size="4"><option value="mul1">mul1</option><option value="mul2">mul2</option><option value="mul3">mul3</option><option value="mul4">mul4</option></select><br/>下拉单选 :<select id="single"><option value="sin1">sin1</option><option value="sin2">sin2</option><option value="sin3">sin3</option></select>
</body>
</body>
</html>
attr()
可以设置和获取属性的值,不推荐操作 checked、readOnly、selected、disabled 等等 attr 方法还可以操作非标准的属性。比如自定义属性:abc,bbj
prop()
可以设置和获取属性的值,只推荐操作 checked、readOnly、selected、disabled 等等
2、jQuery 练习
全选,全不选,反选
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script type="text/javascript" src="../../script/jquery-1.7.2.js"></script>
<script type="text/javascript">$(function(){// 给全选绑定单击事件$("#checkedAllBtn").click(function () {$(":checkbox").prop("checked",true);});// 给全不选绑定单击事件$("#checkedNoBtn").click(function () {$(":checkbox").prop("checked",false);});// 反选单击事件$("#checkedRevBtn").click(function () {// 查询全部的球类的复选框$(":checkbox[name='items']").each(function () {// 在each遍历的function函数中,有一个this对象。这个this对象是当前正在遍历到的dom对象this.checked = !this.checked;});// 要检查 是否满选// 获取全部的球类个数var allCount = $(":checkbox[name='items']").length;// 再获取选中的球类个数var checkedCount = $(":checkbox[name='items']:checked").length;// if (allCount == checkedCount) {// $("#checkedAllBox").prop("checked",true);// } else {// $("#checkedAllBox").prop("checked",false);// }$("#checkedAllBox").prop("checked",allCount == checkedCount);});// 【提交】按钮单击事件$("#sendBtn").click(function () {// 获取选中的球类的复选框$(":checkbox[name='items']:checked").each(function () {alert(this.value);});});// 给【全选/全不选】绑定单击事件$("#checkedAllBox").click(function () {// 在事件的function函数中,有一个this对象,这个this对象是当前正在响应事件的dom对象// alert(this.checked);$(":checkbox[name='items']").prop("checked",this.checked);});// 给全部球类绑定单击事件$(":checkbox[name='items']").click(function () {// 要检查 是否满选// 获取全部的球类个数var allCount = $(":checkbox[name='items']").length;// 再获取选中的球类个数var checkedCount = $(":checkbox[name='items']:checked").length;$("#checkedAllBox").prop("checked",allCount == checkedCount);});});</script>
</head>
<body><form method="post" action="">你爱好的运动是?<input type="checkbox" id="checkedAllBox" />全选/全不选 <br /><input type="checkbox" name="items" value="足球" />足球<input type="checkbox" name="items" value="篮球" />篮球<input type="checkbox" name="items" value="羽毛球" />羽毛球<input type="checkbox" name="items" value="乒乓球" />乒乓球<br /><input type="button" id="checkedAllBtn" value="全 选" /><input type="button" id="checkedNoBtn" value="全不选" /><input type="button" id="checkedRevBtn" value="反 选" /><input type="button" id="sendBtn" value="提 交" /></form></body>
</html>
3、DOM 的增删改
内部插入:
appendTo() a.appendTo(b)
把 a 插入到 b 子元素末尾,成为最后一个子元素
prependTo() a.prependTo(b)
把 a 插到 b 所有子元素前面,成为第一个子元素
外部插入:
insertAfter() a.insertAfter(b)
得到 ba
insertBefore() a.insertBefore(b)
得到 ab
替换:
replaceWith() a.replaceWith(b)
用 b 替换掉 a
replaceAll() a.replaceAll(b)
用 a 替换掉所有 b
删除:
remove() a.remove();
删除 a 标签
empty() a.empty();
清空 a 标签里的内容
4、jQuery 练习二
1.从左到右,从右到左练习
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title><style type="text/css">select {width: 100px;height: 140px;}div {width: 130px;float: left;text-align: center;}</style><script type="text/javascript" src="script/jquery-1.7.2.js"></script><script type="text/javascript">// 页面加载完成$(function () {// 第一个按钮 【选中添加到右边】$("button:eq(0)").click(function () {$("select:eq(0) option:selected").appendTo($("select:eq(1)"));});// 第二个按钮 【全部添加到右边】$("button:eq(1)").click(function () {$("select:eq(0) option").appendTo($("select:eq(1)"));});// 第三个按钮 【选中删除到左边】$("button:eq(2)").click(function () {$("select:eq(1) option:selected").appendTo($("select:eq(0)"));});// 第四个按钮 【全部删除到左边】$("button:eq(3)").click(function () {$("select:eq(1) option").appendTo($("select:eq(0)"));});});</script>
</head>
<body><div id="left"><select multiple="multiple" name="sel01"><option value="opt01">选项1</option><option value="opt02">选项2</option><option value="opt03">选项3</option><option value="opt04">选项4</option><option value="opt05">选项5</option><option value="opt06">选项6</option><option value="opt07">选项7</option><option value="opt08">选项8</option></select><button>选中添加到右边</button><button>全部添加到右边</button></div><div id="rigth"><select multiple="multiple" name="sel02"></select><button>选中删除到左边</button><button>全部删除到左边</button></div></body>
</html>
2.动态添加、删除表格记录
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Untitled Document</title>
<link rel="stylesheet" type="text/css" href="styleB/css.css" />
<script type="text/javascript" src="../../script/jquery-1.7.2.js"></script>
<script type="text/javascript">$(function () {// 创建一个用于复用的删除的function函数var deleteFun = function(){// alert("删除 操作 的function : " + this);// 在事件响应的function函数中,有一个this对象。这个this对象是当前正在响应事件的dom对象。var $trObj = $(this).parent().parent();var name = $trObj.find("td:first").text();/*** confirm 是JavaScript语言提供的一个确认提示框函数。你给它传什么,它就提示什么<br/>* 当用户点击了确定,就返回true。当用户点击了取消,就返回false*/if( confirm("你确定要删除[" + name + "]吗?") ){$trObj.remove();}// return false; 可以阻止 元素的默认行为。return false;};// 给【Submit】按钮绑定单击事件$("#addEmpButton").click(function () {// 获取输入框,姓名,邮箱,工资的内容var name = $("#empName").val();var email = $("#email").val();var salary = $("#salary").val();// 创建一个行标签对象,添加到显示数据的表格中var $trObj = $("<tr>" +"<td>" + name + "</td>" +"<td>" + email + "</td>" +"<td>" + salary + "</td>" +"<td><a href=\"deleteEmp?id=002\">Delete</a></td>" +"</tr>");// 添加到显示数据的表格中$trObj.appendTo( $("#employeeTable") );// 给添加的行的a标签绑上事件$trObj.find("a").click( deleteFun );});// 给删除的a标签绑定单击事件$("a").click( deleteFun );});</script>
</head>
<body><table id="employeeTable"><tr><th>Name</th><th>Email</th><th>Salary</th><th> </th></tr><tr><td>Tom</td><td>tom@tom.com</td><td>5000</td><td><a href="deleteEmp?id=001">Delete</a></td></tr><tr><td>Jerry</td><td>jerry@sohu.com</td><td>8000</td><td><a href="deleteEmp?id=002">Delete</a></td></tr><tr><td>Bob</td><td>bob@tom.com</td><td>10000</td><td><a href="deleteEmp?id=003">Delete</a></td></tr></table><div id="formDiv"><h4>添加新员工</h4><table><tr><td class="word">name: </td><td class="inp"><input type="text" name="empName" id="empName" /></td></tr><tr><td class="word">email: </td><td class="inp"><input type="text" name="email" id="email" /></td></tr><tr><td class="word">salary: </td><td class="inp"><input type="text" name="salary" id="salary" /></td></tr><tr><td colspan="2" align="center"><button id="addEmpButton" value="abc">Submit</button></td></tr></table></div></body>
</html>
5、CSS 样式操作。
addClass() 添加样式
removeClass() 删除样式
toggleClass() 有就删除,没有就添加样式。
offset() 获取和设置元素的坐标。
6、jQuery 动画
基本动画
show() 将隐藏的元素显示
hide() 将可见的元素隐藏。
toggle() 可见就隐藏,不可见就显示。
以上动画方法都可以添加参数。
1、第一个参数是动画 执行的时长,以毫秒为单位
2、第二个参数是动画的回调函数 (动画完成后自动调用的函数)
淡入淡出动画
fadeIn() 淡入(慢慢可见)
fadeOut() 淡出(慢慢消失)
fadeTo() 在指定时长内慢慢的将透明度修改到指定的值。0 透明,1 完成可见,0.5 半透明
fadeToggle() 淡入/淡出 切换
练习 CSS_动画 品牌展示
需求:
1.点击按钮的时候,隐藏和显示卡西欧之后的品牌。
2.当显示全部内容的时候,按钮文本为“显示精简品牌” ,然后,小三角形向上。所有品牌产品为默认颜色。
3.当只显示精简品牌的时候,要隐藏卡西欧之后的品牌,按钮文本为“显示全部品牌” 然后小三形向下。并且把 佳能,尼康的品牌颜色改为红色(给 li 标签添加 promoted 样式即可)
<!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>品牌展示练习</title>
<style type="text/css">
* {margin: 0;padding: 0;
}body {font-size: 12px;text-align: center;
}a {color: #04D;text-decoration: none;
}a:hover {color: #F50;text-decoration: underline;
}.SubCategoryBox {width: 600px;margin: 0 auto;text-align: center;margin-top: 40px;
}.SubCategoryBox ul {list-style: none;
}.SubCategoryBox ul li {display: block;float: left;width: 200px;line-height: 20px;
}.showmore , .showless{clear: both;text-align: center;padding-top: 10px;
}.showmore a , .showless a{display: block;width: 120px;margin: 0 auto;line-height: 24px;border: 1px solid #AAA;
}.showmore a span {padding-left: 15px;background: url(img/down.gif) no-repeat 0 0;
}.showless a span {padding-left: 15px;background: url(img/up.gif) no-repeat 0 0;
}.promoted a {color: #F50;
}
</style>
<script type="text/javascript" src="script/jquery-1.7.2.js"></script>
<script type="text/javascript">$(function() {// 基本初始状态$("li:gt(5):not(:last)").hide();// 给功能的按钮绑定单击事件$("div div a").click(function () {// 让某些品牌,显示,或隐藏$("li:gt(5):not(:last)").toggle();// 判断 品牌,当前是否可见if( $("li:gt(5):not(:last)").is(":hidden") ){// 品牌隐藏的状态 :1 显示全部品牌 == 角标向下 showmore$("div div a span").text("显示全部品牌");$("div div").removeClass();$("div div").addClass("showmore");// 去掉高亮$("li:contains('索尼')").removeClass("promoted");} else {// 品牌可见的状态:2 显示精简品牌 == 角标向上 showless$("div div a span").text("显示精简品牌");$("div div").removeClass();$("div div").addClass("showless");// 加高亮$("li:contains('索尼')").addClass("promoted");}return false;});});
</script>
</head>
<body><div class="SubCategoryBox"><ul><li><a href="#">佳能</a><i>(30440) </i></li><li><a href="#">索尼</a><i>(27220) </i></li><li><a href="#">三星</a><i>(20808) </i></li><li><a href="#">尼康</a><i>(17821) </i></li><li><a href="#">松下</a><i>(12289) </i></li><li><a href="#">卡西欧</a><i>(8242) </i></li><li><a href="#">富士</a><i>(14894) </i></li><li><a href="#">柯达</a><i>(9520) </i></li><li><a href="#">宾得</a><i>(2195) </i></li><li><a href="#">理光</a><i>(4114) </i></li><li><a href="#">奥林巴斯</a><i>(12205) </i></li><li><a href="#">明基</a><i>(1466) </i></li><li><a href="#">爱国者</a><i>(3091) </i></li><li><a href="#">其它品牌相机</a><i>(7275) </i></li></ul><div class="showmore"><a href="more.html"><span>显示全部品牌</span></a></div></div>
</body>
</html>
7、jQuery 事件操作
$( function(){} ); 和 window.onload = function(){} 的区别?
他们分别是在什么时候触发?
1、jQuery 的页面加载完成之后是浏览器的内核解析完页面的标签创建好 DOM 对象之后就会马上执行。
2、原生 js 的页面加载完成之后,除了要等浏览器内核解析完标签创建好 DOM 对象,还要等标签显示时需要的内容加载完成。
他们触发的顺序?
1、jQuery 页面加载完成之后先执行
2、原生 js 的页面加载完成之后
他们执行的次数?
1、原生 js 的页面加载完成之后,只会执行最后一次的赋值函数。
2、jQuery 的页面加载完成之后是全部把注册的 function 函数,依次顺序全部执行。
jQuery 中其他的事件处理方法:
click() 它可以绑定单击事件,以及触发单击事件
mouseover() 鼠标移入事件
mouseout() 鼠标移出事件
bind() 可以给元素一次性绑定一个或多个事件。
one() 使用上跟 bind 一样。但是 one 方法绑定的事件只会响应一次。
unbind() 跟 bind 方法相反的操作,解除事件的绑定
live() 也是用来绑定事件。它可以用来绑定选择器匹配的所有元素的事件。哪怕这个元素是后面动态创建出 来的也有效
事件的冒泡
什么是事件的冒泡?
事件的冒泡是指,父子元素同时监听同一个事件。当触发子元素的事件的时候,同一个事件也被传递到了父元素的事件里去响应。
那么如何阻止事件冒泡呢?
在子元素事件函数体内,return false; 可以阻止事件的冒泡传递。
javaScript 事件对象
事件对象,是封装有触发的事件信息的一个 javascript 对象。
我们重点关心的是怎么拿到这个 javascript 的事件对象。以及使用。
如何获取呢 javascript 事件对象呢?
在给元素绑定事件的时候,在事件的 function( event ) 参数列表中添加一个参数,这个参数名,我们习惯取名为 event。这个 event 就是 javascript 传递参事件处理函数的事件对象。
比如:
//1.原生 javascript 获取 事件对象
window.onload = function () { document.getElementById("areaDiv").onclick = function (event) { console.log(event); }
}
//2.jQuery 代码获取 事件对象
$(function () { $("#areaDiv").click(function (event) { console.log(event); });
});
//3.使用 bind 同时对多个事件绑定同一个函数。怎么获取当前操作是什么事件。
$("#areaDiv").bind("mouseover mouseout",function (event) { if (event.type == "mouseover") { console.log("鼠标移入"); } else if (event.type == "mouseout") { console.log("鼠标移出"); }
});
练习 事件 图片跟随
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<style type="text/css">body {text-align: center;}#small {margin-top: 150px;}#showBig {position: absolute;display: none;}
</style>
<script type="text/javascript" src="script/jquery-1.7.2.js"></script>
<script type="text/javascript">$(function(){$("#small").bind("mouseover mouseout mousemove",function (event) {if (event.type == "mouseover") {$("#showBig").show();} else if (event.type == "mousemove") {console.log(event);$("#showBig").offset({left: event.pageX + 10,top: event.pageY + 10});} else if (event.type == "mouseout") {$("#showBig").hide();}});});
</script>
</head>
<body><img id="small" src="img/small.jpg" /><div id="showBig"><img src="img/big.jpg"></div></body>
</html>
小白学习之路(JavaWeb篇)之 JQuery(下)相关推荐
- 数据清洗的基本流程_数据分析小白学习之路(三)——Excel多练熟能生巧
谈到数据分析,我们可能第一时间想到python.SQL.Tableau.帆软.R等,但是这些软件.语言要入门掌握.系统学习起来耗时较长.这时候不得不提到excel这个"平平无奇数分小能手&q ...
- excel取整函数_数据分析小白学习之路(三)——Excel多练熟能生巧
谈到数据分析,我们可能第一时间想到python.SQL.Tableau.帆软.R等,但是这些软件.语言要入门掌握.系统学习起来耗时较长.这时候不得不提到excel这个"平平无奇数分小能手&q ...
- 大数据学习之路 JUC篇
大数据学习之路 JUC篇(1) 前提说明 本人是一名学生,茫茫it行业的一名卑微的小白,这是我第一次写博客.其原因是学着学着知识发现回顾的时候差不多全忘记了!!为了总结.复习自己以往学到过的有关大数据 ...
- 小白学习Flink系列--第一篇(知识图谱)
小白学习Flink系列–第一篇(知识图谱) 如何学习Flink? 对于一门计算机技术来说,如何快速学习上手呢?具体的逻辑是什么呢?我认为有以下几条 了解技术的应用场景 技术的基本概念,如何使用,以 ...
- JAVA学习之路--基础篇三
目录 关于Java中从键盘输入的语句 nextxxx().next().nextLine()的区别 语句 if和if else语句 Switch语句 for语句 while和do..while bre ...
- ERP学习之路BOM篇
ERP学习之路 ERP面试题之解答 (一)BOM定义 BOM= 产品结构表 产品结构树 零件表 产品用量表 组成表 成本结构表 *记载一项产品的组成零件(或原配方原料)用量信息的列表: 每一生产单元的 ...
- Django学习之路-基础篇
Django 学习之路 一.Django项目创建 1.项目结构 1.1. settings.py 文件 1.2 URL 1.3 视图函数 1.4 路由配置-path 二.请求与响应 2.1.请求和响应 ...
- F#学习之路(3) 如何组织程序(下)
二.名称空间(namespace) 名称空间,将一组逻辑上相关的类型.模块放在一起,主要是为了解决名称冲突的问题,同时也便于更好的理解程序结构.F#的名称空间概念及定义与C#基本相似. 1.定义名称空 ...
- python学习之路基础篇(第四篇)
一.课程内容回顾 1.python基础 2.基本数据类型 (str|list|dict|tuple) 3.将字符串"老男人"转换成utf-8 s = "老男人" ...
最新文章
- 二分图的最大匹配—匈牙利算法
- C#中方法的参数四种类型(值参数、ref、out、params)详解
- 2016年春季计算机应用基础,东北师范2016年春季《计算机应用基础》期末考核
- leetcode-125-验证回文串
- App设计灵感之十二组精美的手机闹钟App设计案例
- python装饰器用法_深入浅出分析Python装饰器用法
- 能力共进、价值共赢,华为传媒携手生态伙伴推动行业数字化转型和智慧化升级
- 单KEY业务,数据库水平切分架构实践
- 在Android中处理屏幕布局变化
- GitHub 上 15 个优秀开源项目告诉你如何上手数据科学!
- 基础14——文件的上传和下载
- Atitit v3项目快速推进的推荐技术标准化 规范 流程
- linux6.5输错密码锁定,干货分享:解决redhat6.5登陆后跳回Login,循环登陆问题
- QT ListView 记录
- LeetCola_19_删除链表的倒数第N个节点_0723M
- 什么是WiFi探针?
- C++ 字元陣列(C-style)、字元指標、String類別 使用方式整理
- 小程序修改weiui-uploadimg的+号图标为自定义图片
- 报错解决方案参考:《xv6分析与实验》中关于qemu运行报错解决方法
- 手游客户端开发招聘要求