jQuery是一个轻量级的、兼容多浏览器的JavaScript库。css
jQuery使用户可以更方便地处理HTML Document、Events、实现动画效果、方便地进行Ajax交互,可以极大地简化JavaScript编程。它的宗旨就是:“Write less, do more.“html
一款轻量级的JS框架。jQuery核心js文件才几十kb,不会影响页面加载速度。前端
丰富的DOM选择器,jQuery的选择器用起来很方便,好比要找到某个DOM对象的相邻元素,JS可能要写好几行代码,而jQuery一行代码就搞定了,再好比要将一个表格的隔行变色,jQuery也是一行代码搞定。jquery
链式表达式。jQuery的链式操做能够把多个操做写在一行代码里,更加简洁。web
事件、样式、动画支持。jQuery还简化了js操做css的代码,而且代码的可读性也比js要强。编程
Ajax操做支持。jQuery简化了AJAX操做,后端只需返回一个JSON格式的字符串就能完成与前端的通讯。后端
跨浏览器兼容。jQuery基本兼容了如今主流的浏览器,不用再为浏览器的兼容问题而伤透脑筋。数组
插件扩展开发。jQuery有着丰富的第三方的插件,例如:树形菜单、日期控件、图片切换插件、弹出窗口等等基本前端页面上的组件都有对应插件,而且用jQuery插件作出来的效果很炫,而且能够根据本身须要去改写和封装插件,简单实用。浏览器
表单对象属性app
offset() // 获取匹配元素在当前窗口的相对偏移或设置元素位置
position() // 获取匹配元素相对父元素的偏移
scrollTop() // 获取匹配元素相对滚动条顶部的偏移
scrollLeft() // 获取匹配元素相对滚动条左侧的偏移
height()
width()
innerHeight()
innerWidth()
outerHeight()
outerWidth()
<input type="checkbox" value="basketball" name="hobby">篮球 <input type="checkbox" value="football" name="hobby">足球 <select multiple id="s1"> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> </select>
对于标签上有的能看到的属性和自定义属性都用attr
对于返回布尔值的好比checkbox、radio和option的是否被选中都用prop。
添加到指定元素内部的后面
添加到指定元素内部的前面
添加到指定元素外部的后面
添加到指定元素外部的前面
移除和清空元素
当DOM载入就绪能够查询及操纵时绑定一个要执行的函数。这是事件模块中最重要的一个函数,由于它能够极大地提升web应用程序的响应速度。
$(document).ready(function(){ // 在这里写你的JS代码... })
简写:
$(function(){ // 你在这里写你的代码 })
与window.onload的区别
事件委托是经过事件冒泡的原理,利用父标签去捕获子标签的事件。
示例:
表格中每一行的编辑和删除按钮都能触发相应的事件。
$("table").on("click", ".delete", function () { // 删除按钮绑定的事件 })
// 基本 show([s,[e],[fn]]) hide([s,[e],[fn]]) toggle([s],[e],[fn]) // 滑动 slideDown([s],[e],[fn]) slideUp([s,[e],[fn]]) slideToggle([s],[e],[fn]) // 淡入淡出 fadeIn([s],[e],[fn]) fadeOut([s],[e],[fn]) fadeTo([[s],o,[e],[fn]]) fadeToggle([s,[e],[fn]]) // 自定义(了解便可) animate(p,[s],[e],[fn])
jQuery.each(collection, callback(indexInArray, valueOfElement)):
一个通用的迭代函数,它能够用来无缝迭代对象和数组。
li =[10,20,30,40] $.each(li,function(i, v){ console.log(i, v);//index是索引,ele是每次循环的具体元素。 }) 输出: 010 120 230 340
.each(function(index, Element)):
描述:遍历一个jQuery对象,为每一个匹配元素执行一个函数。
.each()
方法用来迭代jQuery对象中的每个DOM元素。每次回调函数执行时,会传递当前循环次数做为参数(从0开始计数)。因为回调函数是在当前DOM元素为上下文的语境中触发的,因此关键字 this
老是指向这个元素。
// 为每个li标签添加foo $("li").each(function(){ $(this).addClass("c1"); });
注意: jQuery的方法返回一个jQuery对象,遍历jQuery集合中的元素 - 被称为隐式迭代的过程。当这种状况发生时,它一般不须要显式地循环的 .each()
方法:
也就是说,上面的例子没有必要使用each()方法,直接像下面这样写就能够了:
$("li").addClass("c1"); // 对全部标签作统一操做
注意:
在遍历过程当中可使用 return false
提早结束each循环。
在匹配的元素集合中的全部元素上存储任意相关数据或返回匹配的元素集合中的第一个元素的给定名称的数据存储的值。
.data(key, value):
描述:在匹配的元素上存储任意相关数据。
$("div").data("k",100);//给全部div标签都保存一个名为k,值为100
.data(key):
描述: 返回匹配的元素集合中的第一个元素的给定名称的数据存储的值—经过 .data(name, value)
或 HTML5 data-*
属性设置。
$("div").data("k");//返回第一个div标签中保存的"k"的值
.removeData(key):
描述:移除存放在元素上的数据,不加key参数表示移除全部保存的数据。
$("div").removeData("k"); //移除元素上存放k对应的数据
jQuery.extend(object)
jQuery的命名空间下添加新的功能。多用于插件开发者向 jQuery 中添加新函数时使用。