jQuery(一)
2016-06-04 18:54
344 查看
定义:对JavaScript对象和函数的封装,提高开发效率 http://jquery.com/ 开发版\发布版
作用:
1.访问和操作DOM元素
2.控制页面样式
3.对页面事件进行处理
4.与Ajax技术完美结合
5.扩展新的jQuery插件
优势:
1.出色的DOM封装
2.可靠的事件处理机制
3.出色的浏览器兼容性
4.强大的选择器
5.使用隐式迭代简化编程
6.体积小,丰富的插件支持
jQuery和JavaScript区别:
window.onload $(document).ready()
执行时机 必须等页面所有的内容(包括图片,flash,视频等)加载完毕后才能执行 网页所有DOM文档绘制完毕后即可执行,可能与DOM元素无关的内容(包括图片,flash,视频等)并没有加载完
编写个数 同一个页面只能编写一个 同一个页面同时编写多个
简化写法 无 $(function(){//执行代码});
语法:
1.引入jQuery库文件
2.$(选择器).方法名();
<script>
$(document).ready(function() {
alert("Hello,jQuery!");
});
</script>
DOM元素的操作
a.js,获取的是DOM对象
var input = document.getElementById('userName');
alert(input.value);
b.jQuery,获取的是jQuery对象
var $input = $('#userName');
alert($input.val());
【注意:DOM对象和jQuery对象分别有一套独立的方法,不能混用!!!】
jQuery对象和DOM对象转换
1.数组方式
var $userName = $('#userName');
var userName = $userName[0];
2.get方法
var $userName = $('#userName');
var userName = &userName.get(0);
【★注意:jQuery对象本身是一个集合★】
范例:
jQuery选择器
1.基本选择器:class、id
a.标签选择器:$('h2')
b.类选择器:$('.title')
c.ID选择器:$('#title')
d.并集选择器:$('div,p,.title')
e.交集选择器:$('h2.title')
f.全局选择器:$('*')
2.层次选择器:HTML布局结构
a.后代选择器:$('#menu h2') 选取#menu下的所有<h2>元素
b.子选择器:$('#menu>span') 选取#menu的子元素<span>
c.相邻元素选择器:$('h2+dl') 选取紧邻<h2>元素之后的同辈元素<dl>
d.同辈元素选择器:$('h2~dl') 选取<h2>元素之后所有的同辈元素<dl>
3.过滤选择器:指定的过滤规则
1)属性过滤选择器
a.$("[href]") 选取含有href属性的元素
b.$("[href ='#']") 选取href属性值为“#”的元素
c.$("[href !='#']") 选取href属性值不为“#”的元素
d.$("[href^='en']") 选取href属性值以en开头的元素
e.$("[href$='.jpg']") 选取href属性值以.jpg结尾的元素
f.$("li[id][title=新闻要点]") 选取含有id属性和title属性为新闻要点的<li>元素
2)基本过滤选择器
a.$("li:first") 选取所有<li>元素中的第一个<li>元素
b.$("li:last") 选取所有<li>元素中的最后一个<li>元素
c.$("li:even") 选取索引是偶数的所有<li>元素(index从0开始)
d.$("li:odd") 选取索引是奇数的所有<li>元素(index从0开始)
e.$("li:eq(1)") 选取索引等于1的<li>元素(index从0开始)
f.$("li:gt(1)") 选取索引大于1的<li>元素(注:大于1,不包括1)(index从0开始)
g.$("li:lt(1)") 选取索引小于1的<li>元素(注:小于1,不包括1)(index从0开始)
3)可见性过滤选择器
a.$(":visible") 选取所有可见的元素
b.$(":hidden") 选取所有隐藏的元素
4)表单过滤选择器
a.$( ":input") 选取所有的表单元素
b.$("[type=ckeckbox]:checked") 选取所有选中的复选框元素
c.$("select:selected") 匹配所有选中的下拉框
d.$( ":enabled") 匹配所有可用元素
e.$(":disabled") 匹配所有不可用元素
jQuery提供的方法
1.DOM元素的筛选
a.位置:eq(),first(),last(),next(),prev()
b.层次:chlidren(),parent(),siblings(),closest()
c.指定表达式:find(),hasClass()
2.属性操作
a.class属性:addClass(),removeClass(),toggleClass()
b.value属性:val():获取或设置元素的值,一般用于表单元素
c.内容属性:html(),text()
3.样式
a.单样式操作:height(),width()
b.组合样式操作:css()
4.事件
a.事件绑定:$(选择器).事件名(); / $(选择器).on(事件类型,[选择器],[参数],方法);
b.事件移除:$(选择器).off(事件类型,[选择器],方法);
c.事件触发:$(选择器).trigger(事件类型,[参数]);
常用事件:ready,click,mouseover,mouseout,focus,blur,hover
5.操作
6.动画效果
范例:jQuery对象和DOM对象区别
范例:jQuery选择器
范例:事件
范例:jQuery操作表格
范例:下拉表单
作用:
1.访问和操作DOM元素
2.控制页面样式
3.对页面事件进行处理
4.与Ajax技术完美结合
5.扩展新的jQuery插件
优势:
1.出色的DOM封装
2.可靠的事件处理机制
3.出色的浏览器兼容性
4.强大的选择器
5.使用隐式迭代简化编程
6.体积小,丰富的插件支持
jQuery和JavaScript区别:
window.onload $(document).ready()
执行时机 必须等页面所有的内容(包括图片,flash,视频等)加载完毕后才能执行 网页所有DOM文档绘制完毕后即可执行,可能与DOM元素无关的内容(包括图片,flash,视频等)并没有加载完
编写个数 同一个页面只能编写一个 同一个页面同时编写多个
简化写法 无 $(function(){//执行代码});
语法:
1.引入jQuery库文件
2.$(选择器).方法名();
<script>
$(document).ready(function() {
alert("Hello,jQuery!");
});
</script>
DOM元素的操作
a.js,获取的是DOM对象
var input = document.getElementById('userName');
alert(input.value);
b.jQuery,获取的是jQuery对象
var $input = $('#userName');
alert($input.val());
【注意:DOM对象和jQuery对象分别有一套独立的方法,不能混用!!!】
jQuery对象和DOM对象转换
1.数组方式
var $userName = $('#userName');
var userName = $userName[0];
2.get方法
var $userName = $('#userName');
var userName = &userName.get(0);
【★注意:jQuery对象本身是一个集合★】
范例:
<!DOCTYPE html> <html> <head> <meta charset="utf8"> <title></title> </head> <body> <input id="userName" type="text" value="admin"></input> <button value="点击" onclick="getUserName()">点击</button> <button id="btn" value="jQuery">jQuery</button> <script type="text/javascript" src="bootstrap/bootstrap.js"></script> <!-- jQuery包 --> <script type="text/javascript" src="bootstrap/jquery-1.11.0.js"></script> <script type="text/javascript"> /* 文档就绪事件 */ $(document).ready(function(){ alert('hello,jQuery'); }); //文档就绪的简化写法 $(function(){ alert('您好!'); }); /* jQuery获取jQuery对象 */ $(function(){ $('#btn').click(function () { /* body... */ alert($('#userName').val()); }); }); /* 原始js获取DOM对象 */ function getUserName(){ //使用原始方法获取DOM对象 var inputDom = document.getElementById('userName').value; alert(inputDom); } </script> </body> </html>
jQuery选择器
1.基本选择器:class、id
a.标签选择器:$('h2')
b.类选择器:$('.title')
c.ID选择器:$('#title')
d.并集选择器:$('div,p,.title')
e.交集选择器:$('h2.title')
f.全局选择器:$('*')
2.层次选择器:HTML布局结构
a.后代选择器:$('#menu h2') 选取#menu下的所有<h2>元素
b.子选择器:$('#menu>span') 选取#menu的子元素<span>
c.相邻元素选择器:$('h2+dl') 选取紧邻<h2>元素之后的同辈元素<dl>
d.同辈元素选择器:$('h2~dl') 选取<h2>元素之后所有的同辈元素<dl>
3.过滤选择器:指定的过滤规则
1)属性过滤选择器
a.$("[href]") 选取含有href属性的元素
b.$("[href ='#']") 选取href属性值为“#”的元素
c.$("[href !='#']") 选取href属性值不为“#”的元素
d.$("[href^='en']") 选取href属性值以en开头的元素
e.$("[href$='.jpg']") 选取href属性值以.jpg结尾的元素
f.$("li[id][title=新闻要点]") 选取含有id属性和title属性为新闻要点的<li>元素
2)基本过滤选择器
a.$("li:first") 选取所有<li>元素中的第一个<li>元素
b.$("li:last") 选取所有<li>元素中的最后一个<li>元素
c.$("li:even") 选取索引是偶数的所有<li>元素(index从0开始)
d.$("li:odd") 选取索引是奇数的所有<li>元素(index从0开始)
e.$("li:eq(1)") 选取索引等于1的<li>元素(index从0开始)
f.$("li:gt(1)") 选取索引大于1的<li>元素(注:大于1,不包括1)(index从0开始)
g.$("li:lt(1)") 选取索引小于1的<li>元素(注:小于1,不包括1)(index从0开始)
3)可见性过滤选择器
a.$(":visible") 选取所有可见的元素
b.$(":hidden") 选取所有隐藏的元素
4)表单过滤选择器
a.$( ":input") 选取所有的表单元素
b.$("[type=ckeckbox]:checked") 选取所有选中的复选框元素
c.$("select:selected") 匹配所有选中的下拉框
d.$( ":enabled") 匹配所有可用元素
e.$(":disabled") 匹配所有不可用元素
jQuery提供的方法
1.DOM元素的筛选
a.位置:eq(),first(),last(),next(),prev()
b.层次:chlidren(),parent(),siblings(),closest()
c.指定表达式:find(),hasClass()
2.属性操作
a.class属性:addClass(),removeClass(),toggleClass()
b.value属性:val():获取或设置元素的值,一般用于表单元素
c.内容属性:html(),text()
3.样式
a.单样式操作:height(),width()
b.组合样式操作:css()
4.事件
a.事件绑定:$(选择器).事件名(); / $(选择器).on(事件类型,[选择器],[参数],方法);
b.事件移除:$(选择器).off(事件类型,[选择器],方法);
c.事件触发:$(选择器).trigger(事件类型,[参数]);
常用事件:ready,click,mouseover,mouseout,focus,blur,hover
5.操作
6.动画效果
范例:jQuery对象和DOM对象区别
<!DOCTYPE html> <html> <head> <meta charset="utf8"> <title></title> </head> <body> <input id="userName" type="text" value="admin"></input> <button value="点击" onclick="getUserName()">点击</button> <button id="btn" value="jQuery">jQuery</button> <script type="text/javascript" src="bootstrap/bootstrap.js"></script> <!-- jQuery包 --> <script type="text/javascript" src="bootstrap/jquery-1.11.0.js"></script> <script type="text/javascript"> /* 文档就绪事件 */ $(document).ready(function(){ alert('hello,jQuery'); }); //文档就绪的简化写法 $(function(){ alert('您好!'); }); /* jQuery获取jQuery对象 */ $(function(){ $('#btn').click(function () { alert($('#userName').val()); }); }); /* 原始js获取DOM对象 */ function getUserName(){ //使用原始方法获取DOM对象 var inputDom = document.getElementById('userName').value; alert(inputDom); } $(function(){ var inputDom = document.getElementById('userName').value; console.log(inputDom); var $inputJQ = $('#userName'); console.log($inputJQ); }); </script> </body> </html>
范例:jQuery选择器
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <style type="text/css"> .step h1+ol{ background-color: red; } li[class]{ color:blue; } li[class=s]{ color: yellow; } input[data-role="save"]{ background-color: blue; color: white; border: none; border-radius: 4px; } li:nth-child(1),li:nth-child(2){ font-size: 40px; } </style> </head> <body> <script type="text/javascript" src="bootstrap/jquery.min.js"></script> <script type="text/javascript" src="bootstrap/jquery-1.11.0.js"></script> <div class="step"> <h1>把大象装进冰箱</h1> <ol> <li class="">打开冰箱</li> <li class="s">把冰箱清空</li> <li>把大象装进去</li> <li>关上冰箱</li> </ol> <h1>把熊猫装进冰箱</h1> <ol> <li>打开冰箱</li> <li>把冰箱清空</li> <li>把熊猫装进去</li> <li>关上冰箱</li> </ol> <input type="button" value="登录" data-role="save"></input> </div> <script type="text/javascript"> $(function(){ /* 获得所有的奇偶行 */ $('li:odd').css('background-color','blue'); $('li:odd').css({ 'background-color':'blue', 'color':'red', 'font-size':'20px' }); /* 找到第一个ol下面的第三个li */ $('ol li:eq(2)').css('border','10px solid red'); /* 找到所有ol下面的第三个li */ $('ol').find('li:eq(2)').css('border','10px solid red'); }); </script> </body> </html>
范例:事件
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <style type="text/css"> .news li.selected{ background-color: red; color: white; } </style> </head> <body> <script type="text/javascript" src="bootstrap/bootstrap.min.js"></script> <script type="text/javascript" src="bootstrap/jquery-1.11.0.js"></script> <button id="btn_add" value="添加">添加</button> <h3>新闻列表</h3> <ol class="news"> <li><a href="javascript:;"></a>国内新闻</li> <li>国际新闻</li> <li>体育新闻</li> <li>新闻列表</li> </ol> <script type="text/javascript"> $(function(){ $('#btn_add').click(function () { var $li = $('<li></li>'); $li.text('新添加'); $('ol').append($li); }); $('.news li').click(function () { // $(this).toggleClass('selected'); // $(this).addClass('selected').siblings().removeClass('selected'); $(this).toggleClass('selected').siblings().removeClass('selected'); $(this).css('font-size','20px'); alert($(document).height()); }); $('.news').on('click','li',function(){ $(this).toggleClass('selected').siblings().removeClass('selected'); /* 事件触发一次,就关闭 */ // $('.news').off('click'); /* 点击li,就触发添加按钮 */ $('#btn_add').trigger('click'); }); }); </script> </body> </html>
范例:jQuery操作表格
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> </head> <body> <div> <table> <thead> <tr> <th>姓名</th> <th>性别</th> <th>出生日期</th> <th>电话</th> <th>邮箱</th> <th>操作</th> </tr> </thead> <tbody> <tr> <td>张三</td> <td>男</td> <td>1999-11-11</td> <td>13612345672</td> <td>zhangsan@qq.com</td> <td><a data-role="del" href="javascript:;">删除</a><a data-role="detial" href="javascript:;">详细</a></td> </tr> <tr> <td>李四</td> <td>男</td> <td>1999-11-11</td> <td>13612345672</td> <td>zhangsan@qq.com</td> <td><a data-role="del" href="javascript:;">删除</a><a data-role="detial" href="javascript:;">详细</a></td> </tr> <tr> <td>王五</td> <td>男</td> <td>1999-11-11</td> <td>13612345672</td> <td>zhangsan@qq.com</td> <td><a data-role="del" href="javascript:;">删除</a><a data-role="detial" href="javascript:;">详细</a></td> </tr> <tr> <td>赵六</td> <td>男</td> <td>1999-11-11</td> <td>13612345672</td> <td>zhangsan@qq.com</td> <td><a data-role="del" href="javascript:;">删除</a><a data-role="detial" href="javascript:;">详细</a></td> </tr> <tr> <td>刘七</td> <td>男</td> <td>1999-11-11</td> <td>13612345672</td> <td>zhangsan@qq.com</td> <td><a data-role="del" href="javascript:;">删除</a><a data-role="detial" href="javascript:;">详细</a></td> </tr> </tbody> </table> <div>详细信息</div> </div> <div> <table> <thead> <tr> <th>姓名</th> <th>性别</th> <th>出生日期</th> <th>电话</th> <th>邮箱</th> <th>操作</th> </tr> </thead> <tbody> <tr> <td>张三</td> <td>男</td> <td>1999-11-11</td> <td>13612345672</td> <td>zhangsan@qq.com</td> <td><a data-role="del" href="javascript:;">删除</a><a data-role="detial" href="javascript:;">详细</a></td> </tr> <tr> <td>李四</td> <td>男</td> <td>1999-11-11</td> <td>13612345672</td> <td>zhangsan@qq.com</td> <td><a data-role="del" href="javascript:;">删除</a><a data-role="detial" href="javascript:;">详细</a></td> </tr> <tr> <td>王五</td> <td>男</td> <td>1999-11-11</td> <td>13612345672</td> <td>zhangsan@qq.com</td> <td><a data-role="del" href="javascript:;">删除</a><a data-role="detial" href="javascript:;">详细</a></td> </tr> <tr> <td>赵六</td> <td>男</td> <td>1999-11-11</td> <td>13612345672</td> <td>zhangsan@qq.com</td> <td><a data-role="del" href="javascript:;">删除</a><a data-role="detial" href="javascript:;">详细</a></td> </tr> <tr> <td>刘七</td> <td>男</td> <td>1999-11-11</td> <td>13612345672</td> <td>zhangsan@qq.com</td> <td><a data-role="del" href="javascript:;">删除</a><a data-role="detial" href="javascript:;">详细</a></td> </tr> </tbody> </table> <div>详细信息</div> </div> <div> <table> <thead> <tr> <th>姓名</th> <th>性别</th> <th>出生日期</th> <th>电话</th> <th>邮箱</th> <th>操作</th> </tr> </thead> <tbody> <tr> <td>张三</td> <td>男</td> <td>1999-11-11</td> <td>13612345672</td> <td>zhangsan@qq.com</td> <td><a data-role="del" href="javascript:;">删除</a><a data-role="detial" href="javascript:;">详细</a></td> </tr> <tr> <td>李四</td> <td>男</td> <td>1999-11-11</td> <td>13612345672</td> <td>zhangsan@qq.com</td> <td><a data-role="del" href="javascript:;">删除</a><a data-role="detial" href="javascript:;">详细</a></td> </tr> <tr> <td>王五</td> <td>男</td> <td>1999-11-11</td> <td>13612345672</td> <td>zhangsan@qq.com</td> <td><a data-role="del" href="javascript:;">删除</a><a data-role="detial" href="javascript:;">详细</a></td> </tr> <tr> <td>赵六</td> <td>男</td> <td>1999-11-11</td> <td>13612345672</td> <td>zhangsan@qq.com</td> <td><a data-role="del" href="javascript:;">删除</a><a data-role="detial" href="javascript:;">详细</a></td> </tr> <tr> <td>刘七</td> <td>男</td> <td>1999-11-11</td> <td>13612345672</td> <td>zhangsan@qq.com</td> <td><a data-role="del" href="javascript:;">删除</a><a data-role="detial" href="javascript:;">详细</a></td> </tr> </tbody> </table> <div>详细信息</div> </div> <script type="text/javascript" src="bootstrap/jquery-1.11.0.js"></script> <script type="text/javascript"> $(function(){ $('a[data-role="del"]').click(function(){ /* (a)td->tr->td:first */ // var name = $(this).parent().parent().find('td:first').text(); var name = $(this).closest('tr').children().first().text(); confirm(name + '?'); }); $('a[data-role="detial"]').click(function(){ var name = $(this).closest('tr').find('td:eq(0)').text(); var $detialLayer = $(this).closest('table').next(); $detialLayer.html(name); // confirm('查看' + name); }); }); </script> </body> </html>
范例:下拉表单
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <link rel="stylesheet" type="text/css" href="bootstrap/select2-4.0.2-dist/css/select2.min.css"> </head> <body> <select style="width: 200px;"> <option>1</option> <option>12</option> <option>13</option> <option>14</option> <option>21</option> <option>31</option> <option>41</option> <option>61</option> </select> <script type="text/javascript" src="bootstrap/jquery-1.11.0.js"></script> <script type="text/javascript" src="bootstrap/select2-4.0.2-dist/js/select2.full.min.js"></script> <script type="text/javascript"> $(function () { $('select').select2(); }); </script> </body> </html>
相关文章推荐
- jQuery ajax + ajaxfileupload.js插件 实现无刷新文件上传
- jQuery选择器
- jQuery Validate验证框架详解
- jquery,php之间的ajax关系以及json
- jQuery和DOM对象转化
- jQuery实现 全选/全不选
- jQuery EasyUI-validatebox验证框、实现自定义验证
- JQuery.cycle()实现图片轮播简单使用
- Jquery parent方法 IE8 不起作用
- 理解jquery的$.extend()、$.fn和$.fn.extend()
- JavaScript jQuery 入门回顾 2
- jQuery中的.bind()、.live()和.delegate()之间区别分析,学习jquery
- JavaScript jQuery 事件、动画、扩展
- JQuery的异步回调支持 - Promise、Deferred
- js和jquery获取父级元素、子级元素、兄弟元素的方法
- 实现jquery DataTable前后台动态分页
- jquery的each()详细介绍
- jQuery源码解读二
- jQuery+CSS3实现404背景动画特效
- Jquery使用trigger()方法模拟事件