5.jQuery
简介
jQuery是一个快速、简洁的JavaScript框架,jQuery设计的宗旨是“write Less,Do More”,即倡导写更少的代码,做更多的事情。它封装JavaScript常用的功能代码,提供一种简便的JavaScript设计模式,优化HTML文档操作、事件处理、动画设计和Ajax交互。jQuery的核心特性可以总结为:具有独特的链式语法和短小清晰的多功能接口;具有高效灵活的css选择器,并且可对CSS选择器进行扩展;拥有便捷的插件扩展机制和丰富的插件。jQuery兼容各种主流浏览器,如IE 6.0+、FF 1.5+、Safari 2.0+、Opera 9.0+等。
引用方法:<
script
src="jquery-1.12.4.js"></
script
>
基本选择器
1.id选择器
- <div id="i1">111</div>
- $('#i1')
jQuery.fn.init [div#i1, context: document, selector: "#i1"]- $('#i1')[0]
<div id="i1">111</div>
2.clss选择器
- <div class="c1">222</div>
- $('.c1')
- jQuery.fn.init [div.c1, prevObject: jQuery.fn.init(1), context: document, selector: ".c1"]
- $('.c1')[0]
- <div class="c1">222</div>
3.标签选择器
- 查找所有的a标签
- <div class="c1">
- <a>111</a>
- <a>222</a>
- <a>333</a>
- </div>
- $('a')
4.一次查多个
- <div id="i1">111</div>
- <div class="c1">
- <a>111</a>
- <a>222</a>
- <a>333</a>
- </div>
- $('#id.c1,a')
层级选择器
1. ancestor descendant(查找包含的所有-子子孙孙)
- <div id="i1" class="c1">
- <div>
- <a>a</a>
- </div>
- <div>
- <a>b</a>
- <a>c</a>
- </div>
- </div>
- $('#i1 a')
2.parent > child(只查找下一级所有-儿子)
- <div id="i1" class="c1">
- <div>
- <a>a</a>
- </div>
- <a>b</a>
- <a>c</a>
- </div>
- $('#i1 > a')
- <a>b</a>
- <a>c</a>
3.prev + next(查找同级相邻的一个)
- <div id="i1" class="c1">
- <div>
- <input name="name"/>
- <a>a</a>
- </div>
- <a>b</a>
- <input name="name"/>
- <a>c</a>
- <a>d</a>
- </div>
- $('input + a')
- [<a>a</a>, <a>c</a>]
4.prev ~ siblings(查找同级下面所有)
- <div id="i1" class="c1">
- <div>
- <input name="name"/>
- <a>a</a>
- </div>
- <a>b</a>
- <input name="name"/>
- <a>c</a>
- <a>d</a>
- </div>
- $('input ~ a')
- [<a>a</a>, <a>c</a>, <a>d</a>]
基本筛选器
- $('li:first') //第一个元素
- $('li:last') //最后一个元素
- $("tr:even") //索引为偶数的元素,从 0 开始
- $("tr:odd") //索引为奇数的元素,从 0 开始
- $("tr:eq(1)") //给定索引值的元素
- $("tr:gt(0)") //大于给定索引值的元素
- $("tr:lt(2)") //小于给定索引值的元素
- $(":focus") //当前获取焦点的元素
- $(":animated") //正在执行动画效果的元素
- <ul>
- <li>111</li>
- <li>222</li>
- <li>333</li>
- <li>444</li>
- <li>555</li>
- </ul>
1.:first(获取匹配的第一个元素)
- $('ul li:first')
- <li>111</li>
2.:last(获取匹配的最后一个元素)
- $('ul li:last')
- <li>555</li>
3.:eq(匹配一个给定索引值的元素)
- $('ul li:eq(2)')
- <li>333</li>
4.gt(匹配所有大于给定索引值的元素)
- $('ul li:gt(2)')
- <li>444</li> <li>555</li>
5.:lt (匹配所有小于给定索引值的元素)
- $('ul li:lt(2)')
- <li>111</li> <li>222</li>
- :not(selector) 去除所有与给定选择器匹配的元素
- :even 匹配所有索引值为偶数的元素,从 0 开始计
- :odd 匹配所有索引值为奇数的元素,从 0 开始计数
- :lang(language) 选择指定语言的所有元素
- :header 匹配如 h1, h2, h3之类的标题元素
- :animated 匹配所有正在执行动画效果的元素
- :focus 匹配当前获取焦点的元素
- :root 选择该文档的根元素
- :targe 选择由文档URI的格式化识别码表示的目标元素
others
属性选择器
1. [ ](匹配包含给定属性的元素)
- <div class="c1">
- <div name="derek"> derek</div>
- <div name="jack"> jack</div>
- </div>
- $('div[name]')
- <div name="derek"> derek</div>
- <div name="jack"> jack</div>
2.[a="b"](匹配给定的属性是某个特定值的元素)
- <div class="c1">
- <div name="derek"> derek</div>
- <div name="jack"> jack</div>
- </div>
- $('div[name="derek"]')
- <div name="derek"> derek</div>
- attribute!=value] 匹配所有不含有指定的属性,或者属性不等于特定值的元素
- [attribute^=value] 匹配给定的属性是以某些值开始的元素
- [attribute$=value] 匹配给定的属性是以某些值结尾的元素
- [attribute*=value] 匹配给定的属性是以包含某些值的元素
- [selector1][selector2][selectorN] 复合属性选择器,需要同时满足多个条件时使用
others
表单选择器
- <form>
- <input type="text" />
- <input type="checkbox" />
- <input type="radio" />
- <input type="image" />
- <input type="file" />
- <input type="submit" />
- <input type="reset" />
- <input type="password" />
- <input type="button" />
- <select><option/></select>
- <textarea></textarea>
- <button></button>
- </form>
用:input,:text ,:password,:radio,:checkbox........
- $(':text')
- [<input type="text">]
- $(':password')
- [<input type="password">]
表单对象属性
1.:enabled(匹配所有可编辑元素)
- <form>
- <input name="email" disabled="disabled" />
- <input name="id" />
- </form>
- $("input:enabled")
- [<input name="id" />]
2.:disabled(匹配所有不可编辑元素)
- $("input:disabled")
- [<input name="email" disabled="disabled" />]
3.:checked(匹配所有选中的被选中元素)
- <form>
- 篮球:<input type="checkbox" name="favor" value="1" />
- 足球:<input type="checkbox" name="favor" value="2" />
- 台球:<input type="checkbox" name="favor" value="3" checked="checked" />
- </form>
- $("input:checked")
- <input type="checkbox" name="favor" value="3" checked="checked">
4.:selected(匹配所有选中的option元素)
- <select>
- <option value="1">篮球</option>
- <option value="2" selected="selected">足球</option>
- <option value="3">台球</option>
- </select>
- $("select option:selected")
- <option value="2" selected="selected">足球</option>
筛选器
- $("div").children() //div中的每个子元素,第一层
- $("div").find("span") //div中的包含的所有span元素,子子孙孙
- $("p").next() //紧邻p元素后的一个同辈元素
- $("p").nextAll() //p元素之后所有的同辈元素
- $("#test").nextUntil("#test2") //id为"#test"元素之后到id为'#test2'之间所有的同辈元素,掐头去尾
- $("p").prev() //紧邻p元素前的一个同辈元素
- $("p").prevAll() //p元素之前所有的同辈元素
- $("#test").prevUntil("#test2") //id为"#test"元素之前到id为'#test2'之间所有的同辈元素,掐头去尾
- $("p").parent() //每个p元素的父元素
- $("p").parents() //每个p元素的所有祖先元素,body,html
- $("#test").parentsUntil("#test2") //id为"#test"元素到id为'#test2'之间所有的父级元素,掐头去尾
- $("div").siblings() //所有的同辈元素,不包括自己
1.next(紧邻的同级下一个元素)
- <p>11</p>
- <span>22</span>
- <div>33</div>
- $("p").next()
- <span>22</span>
2.prev(紧邻的同级上一个元素)
- $("span").prev()
- <p>11</p>
3. parent(匹配元素的唯一父元素)
- <div>
- <span>111</span>
- <div>
- <p>222</p>
- <div>
- <a>333</a>
- </div>
- </div>
- </div>
- $("a").parent()
- <div>
- <a>333</a>
- </div>
4.children(匹配元素所有子元素的元素集合)
- <div>
- <p>111</p>
- <span>
- <p>222</p>
- </span>
- </div>
- $("div").children()
- [<p>111</p>, <span><p>222</p></span>]
5.siblings(匹配元素所有同级元素的元素集合)
- <div>
- <p>111</p>
- <span>222</span>
- <p>333</p>
- </div>
- $("span").siblings()
- [<p>111</p>, <p>333</p>]
6.find(搜索所有与指定表达式匹配的元素)
- <div>
- <p>111</p>
- <span>222</span>
- <p>333</p>
- </div>
- $("div").find('p')
- <p>111</p> <p>333</p>
- closest 从元素本身开始,逐级向上级元素匹配,并返回最先匹配的元素
- nextAll 查找当前元素之后所有的同辈元素
- nextUntil 查找当前元素之后所有的同辈元素,直到遇到匹配的那个元素为止
- offsetParent 返回第一个匹配元素用于定位的父节点
- parents 取得一个包含着所有匹配元素的祖先元素的元素集合(不包含根元素)。可以通过一个可选的表达式进行筛选
- parentsUntil 查找当前元素的所有的父辈元素,直到遇到匹配的那个元素为止
- prevAll 查找当前元素之前所有的同辈元素
- prevUntil 查找当前元素之前所有的同辈元素,直到遇到匹配的那个元素为止
- siblings 取得一个包含匹配的元素集合中每一个元素的所有唯一同辈元素的元素集合。可以用可选的表达式进行筛选
others查找
- eq 获取当前链式操作中第N个jQuery对象,返回jQuery对象
- first 获取第一个元素
- last 获取最后个元素
- filter 筛选出与指定表达式匹配的元素集合
- is 根据选择器、DOM元素或 jQuery 对象来检测匹配元素集合,如果其中至少有一个元素符合这个给定的表达式就返回true
- map 将一组元素转换成其他数组(不论是否是元素数组)
- has 保留包含特定后代的元素,去掉那些不含有指定后代的元素
- not 从匹配元素的集合中删除与指定表达式匹配的元素
- slice 选取一个匹配的子集
过滤
属性
- $('p').html(); //返回p元素的html内容
- $("p").html("Hello <b>nick</b>!"); //设置p元素的html内容
- $('p').text(); //返回p元素的文本内容
- $("p").text("nick"); //设置p元素的文本内容
- $("input").val(); //获取文本框中的值
- $("input").val("nick"); //设置文本框中的内容
1.html(获取和设置匹配元素的内容)
- <div>
- <p>111</p>
- <span>222</span>
- <p>333</p>
- </div>
- 获取
- $('span').html()
- "222"
- 修改
- $('span').html("<span>444</span>")
2.text(获取和设置匹配元素的内容)
- $('span').text()
- "222"
- 修改
- $('span').text(<span>444</span>)
- $('span').text()
- "<span>444</span>"
- 修改后变成了字符串而不再是标签了
3.val(获取和设置input、select框中的内容)
- <input type="text" value="默认值"/>
- $('input').val()
- "默认值"
- 修改value的值
- $('input').val('请输入关键字')
- $('input').val()
- "请输入关键字"
CSS
1.addClass(为每个匹配的元素添加指定的类名)
- <div>
- <span>111</span>
- </div>
- $('span').addClass('c1')
2.removeClass(从所有匹配的元素中删除全部或者指定的类)
- <div>
- <span class="c1">111</span>
- </div>
- $('span').removeClass('c1')
3. toggleClass(如果存在就删除、不存在就添加)
- $('span').toggleClass('c1')
属性
1.attr(设置或返回自定义属性值)
- <input id="i1" type="button" value="开关" />
- 获取值
- $('#i1').attr('type')
- "button"
- $('#i1').attr('value')
- "开关"
- $('#i1').attr('id')
- "i1"
- 设置值
- $('#i1').attr('name','derek')
- <input id="i1" type="button" value="开关" name="derek"/>
2.removeAttr(删除自定义属性)
- $('#i1').removeAttr('name')
3.prop(专门用于checkbox,radio)
- <input id="i1" type="checkbox" checked="checked" />
- # 判断
- > ('input:checkbox').prop('checked')
- < true
- # 设置
- > $('input:checkbox').prop('checked',false)
- < [<input id="i1" type="checkbox" checked="checked">]
- > $('input:checkbox').prop('checked')
- < false
- # 禁用
- > $('input:checkbox').prop('disabled')
- < false
- > $('input:checkbox').prop('disabled',true)
- < [<input id="i1" type="checkbox" checked="checked" disabled>]
4.removeProp(用来删除由.prop()方法设置的属性集)
- <input id="i1" type="checkbox" checked="checked" />
- > $('input:checkbox').prop('disabled',true)
- < [<input id="i1" type="checkbox" checked="checked" disabled>]
- > $('input:checkbox').removeProp('disabled')
- < [<input id="i1" type="checkbox" checked="checked">]
文档处理
1.内部添加
(1)append(向每个匹配的元素内部追加内容)
- <div class="d1">
- <p>第一行</p>
- </div>
- $("div").append("<p>第二行</p>")
(2)prepend(向每个匹配的元素内部前置内容)
- $("div").prepend("<p>第零行</p>")
- 第零行
- 第一行
- 第二行
2.外部添加
after(在每个匹配的元素之后插入内容)
- <div class="d1">
- <p>第一行</p>
- </div>
- > $("div").after("<div>下面另起一行</div>");
- < [<div class="d1"><p>第一行</p></div>]
- > $("div")
- < [<div class="d1"><p>第一行</p></div>, <div>下面另起一行</div>]
before(在每个匹配的元素之前插入内容)
- <div class="d1">
- <p>第一行</p>
- </div>
- > $("div").before("<div>上面另起一行</div>");
- < [<div class="d1"><p>第一行</p></div>]
- > $("div")
- < [<div>上面另起一行</div>, <div class="d1"><p>第一行</p></div>]
3.删除
1. empty(删除匹配的元素集合中内容不删除标签)
- <div class="d1">
- <p>第一行</p>
- </div>
- > $("p").empty();
- < [<p></p>]
- > $("div")
- < [<div class="d1"><p></p></div>]
2.remove(删除匹配的元素集合包括标签)
- <div class="d1">
- <p>第一行</p>
- </div>
- > $("p").remove();
- < [<p>第一行</p>]
- > $("div")
- < [<div class="d1"></div>]
jQuery CSS
1.CSS
css(获取和设置匹配元素的样式属性)
- <span style="color:red">111</span>
- $('span').css('color') -->获取
- $('span').css('color','black') -->设置
- $('span').css({'color':'#dddddd','background':'blue'}) -->设置多个
2.位置
- $('p').offset() //元素在当前视口的相对偏移,Object {top: 122, left: 260}
- $('p').offset().top
- $('p').offset().left
- $("p").position() //元素相对父元素的偏移,对可见元素有效,Object {top: 117, left: 250}
- $(window).scrollTop() //获取滚轮滑的高度
- $(window).scrollLeft() //获取滚轮滑的宽度
- $(window).scrollTop('100') //设置滚轮滑的高度为100
(1)offset(获取和设置匹配元素在整个html的相对坐标)
- $('#i1').offset()
(2)position(获取匹配元素相对父元素的坐标)
- $('#i1').position()
(3)scrollTop(获取和设置滚动条到顶部的坐标)
- <div style="height: 100px;width:100px;overflow: auto">
- <p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p>
- <p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p>
- <p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p>
- </div>
- <div style="height: 1000px;"></div>
- # 获取滚动条坐标
- > $(window).scrollTop()
- < 0
- > $('div').scrollTop()
- <
(4)scrollLeft(获取和设置滚动条到左侧的坐标)
- <div style="height: 100px;width:100px;overflow: auto">
- <p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p>
- <p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p>
- <p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p>
- </div>
- <div style="height: 1000px;width: 2000px"></div>
- # 获取
- > $(window).scrollLeft()
- < 0
- # 设置
- > $(window).scrollLeft(300)
- < [Window]
- > $(window).scrollLeft()
- <
3.尺寸
- height 取得匹配元素当前计算的高度值(px)
- innerHeight 获取第一个匹配元素内部区域高度(包括补白、不包括边框)
- outerHeight 获取第一个匹配元素外部高度(默认包括补白和边框)
- width 取得第一个匹配元素当前计算的宽度值(px)
- innerWidth 获取第一个匹配元素内部区域宽度(包括补白、不包括边框)
- outerWidth 获取第一个匹配元素外部宽度(默认包括补白和边框)
事件
- $("p").click(); //单击事件
- $("p").dblclick(); //双击事件
- $("input[type=text]").focus() //元素获得焦点时,触发 focus 事件
- $("input[type=text]").blur() //元素失去焦点时,触发 blur事件
- $("button").mousedown()//当按下鼠标时触发事件
- $("button").mouseup() //元素上放松鼠标按钮时触发事件
- $("p").mousemove() //当鼠标指针在指定的元素中移动时触发事件
- $("p").mouseover() //当鼠标指针位于元素上方时触发事件
- $("p").mouseout() //当鼠标指针从元素上移开时触发事件
- $(window).keydown() //当键盘或按钮被按下时触发事件
- $(window).keypress() //当键盘或按钮被按下时触发事件,每输入一个字符都触发一次
- $("input").keyup() //当按钮被松开时触发事件
- $(window).scroll() //当用户滚动时触发事件
- $(window).resize() //当调整浏览器窗口的大小时触发事件
- $("input[type='text']").change() //当元素的值发生改变时触发事件
- $("input").select() //当input 元素中的文本被选择时触发事件
- $("form").submit() //当提交表单时触发事件
- $(window).unload() //用户离开页面时
5.jQuery的更多相关文章
- Angular杂谈系列1-如何在Angular2中使用jQuery及其插件
jQuery,让我们对dom的操作更加便捷.由于其易用性和可扩展性,jQuer也迅速风靡全球,各种插件也是目不暇接. 我相信很多人并不能直接远离jQuery去做前端,因为它太好用了,我们以前做的东西大 ...
- jQuery UI resizable使用注意事项、实时等比例拉伸及你不知道的技巧
这篇文章总结的是我在使用resizable插件的过程中,遇到的问题及变通应用的奇思妙想. 一.resizable使用注意事项 以下是我在jsfiddle上写的测试demo:http://jsfiddl ...
- Jquery的点击事件,三句代码完成全选事件
先来看一下Js和Jquery的点击事件 举两个简单的例子 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN&q ...
- jQuery实践-网页版2048小游戏
▓▓▓▓▓▓ 大致介绍 看了一个实现网页版2048小游戏的视频,觉得能做出自己以前喜欢玩的小游戏很有意思便自己动手试了试,真正的验证了这句话-不要以为你以为的就是你以为的,看视频时觉得看懂了,会写了, ...
- jquery和Js的区别和基础操作
jqery的语法和js的语法一样,算是把js升级了一下,这两种语法可以一起使用,只不过是用jqery更加方便 一个页面想要使用jqery的话,先要引入一下jqery包,jqery包从网上下一个就可以, ...
- jQuery之ajax实现篇
jQuery的ajax方法非常好用,这么好的东西,你想拥有一个属于自己的ajax么?接下来,我们来自己做一个简单的ajax吧. 实现功能 由于jq中的ajax方法是用了内置的deferred模块,是P ...
- 利用snowfall.jquery.js实现爱心满屏飞
小颖在上一篇一步一步教你用CSS画爱心中已经分享一种画爱心的方法,这次再分享一种方法用css画爱心,并利用snowfall.jquery.js实现爱心满屏飞的效果. 第一步: 利用伪元素before和 ...
- jQuery的61种选择器
The Write Less , Do More ! jQuery选择器 1. #id : 根据给定的ID匹配一个元素 <p id="myId">这是第一个p标签< ...
- jquery.uploadify文件上传组件
1.jquery.uploadify简介 在ASP.NET中上传的控件有很多,比如.NET自带的FileUpload,以及SWFUpload,Uploadify等等,尤其后面两个控件的用户体验比较好, ...
- 浅谈 jQuery 核心架构设计
jQuery对于大家而言并不陌生,因此关于它是什么以及它的作用,在这里我就不多言了,而本篇文章的目的是想通过对源码简单的分析来讨论 jQuery 的核心架构设计,以及jQuery 是如何利用javas ...
随机推荐
- tensorflow分类-【老鱼学tensorflow】
前面我们学习过回归问题,比如对于房价的预测,因为其预测值是个连续的值,因此属于回归问题. 但还有一类问题属于分类的问题,比如我们根据一张图片来辨别它是一只猫还是一只狗.某篇文章的内容是属于体育新闻还是 ...
- Anaconda的安装与使用
1. 安装Anaconda(Command Line) 1.1 下载 首先去Anaconda官网查看下载链接,然后通过命令行下载: $ wget https://repo.anaconda.com/a ...
- D3---01基础的柱状图制作(转)
---文章转自 http://d3.decembercafe.org/index.html ,Created by 十二月咖啡馆. 一个完整的柱形图包含三部分:矩形.文字.坐标轴. 首先要布置一个大 ...
- js基础知识易错点(一)
最近替另一个项目招人,要求基础知识好,随便问了一些基础题,发现了一些易错的点,总结一下. 1.判断一个空数组 var arr = []; 1)JSON.stringify(arr) == " ...
- CentOS7终端的分辨率和字体修改
本文转贴自https://blog.csdn.net/u010566813/article/details/40502819 一.修改分辨率 修改/boot/grub2/grub.cfg 添加如上,具 ...
- 一个陌生女人的来信 Brief einer Unbekannten
[Österreich] Stefan Zweig Mein Kind ist gestorben, unser Kind - jetzt habe ich niemanden mehr in der ...
- 编程菜鸟的日记-初学尝试编程-C++ Primer Plus 第6章编程练习4
#include <iostream> using namespace std; const int strsize=30; const int BOPSIZE=5; void showm ...
- 多阶段构建Docker镜像
在Docker 17.05及更高的版本中支持支持一种全新的构建镜像模式:多阶段构建: 多阶段构建Docker镜像的最大好处是使构建出来的镜像变得更小: 目前常见的两个构建镜像的方式为: 1.直接使用某 ...
- [LeetCode] Hand of Straights 一手顺子牌
Alice has a hand of cards, given as an array of integers. Now she wants to rearrange the cards into ...
- java课程之团队开发冲刺阶段1.7
一.总结昨天进度 1.昨天学习了对数据库增删改查的基本操作,并且可以使用代码实现操作 二.遇到的问题 1.由于是学习阶段,没有遇到太大阻碍,但是最终需要实现的是联网进行数据库的读写或者是对本地数据库的 ...