jQuery,顾名思义,也就是JavaScript和查询(Query)极大地简化了JavaScript开发人员遍历HTML文档、操做DOM、处理事件、执行动画和开发Ajax。css
html
轻量级(压缩后只有几十k)数组
强大的选择器浏览器
出色的 DOM 操做的封装app
可靠的事件处理机制框架
完善的 Ajax使用dom
出色的多浏览器兼容性ide
隐式迭代:对集合对象作相同操做时不须要逐个进行遍历,jQuery自动进行遍历函数
文档说明很全测试
可扩展插件
jQuery库实际上就是一个js文件,只须要在网页中直接引入这个文件就能够了。
$是jQuery的核心函数,jQuery的核心功能都是经过这个函数实现。$()就是调用$这个函数。
$函数会根据参数数据类型的不一样作不一样的工做, 返回一个jQuery封装的伪数组的对象
表示:在DOM文档载入完成后,回调函数自动执行
这个函数是 $(document).ready(function(){})的简写形式。
根据这个选择器查找元素节点对象
根据此字符串在document中去匹配一组元素,并封装成jQuery对象返回
$("#id属性值"); 至关于经过id属性查找标签对象 $("标签名"); 至关于经过标签名查找标签对象,返回集合 $(".class属性值"); 至关于经过class属性查找标签对象,返回集合
根据这个html字符串建立元素节点对象
建立对应的标签对象, 并包装成jQuery对象
var $liEle = $("<li>香港</li>") //至关于建立了一个标签对象 <li>香港</li>。 $("#city").append($liEle); //将此jQuery对象添加到现有的jQuery对象中。
返回包含这个dom对象的jQuery对象。至关于把DOM对象包装(或转换)成jQuery对象。
注意:若是声明一个变量指向jQuery对象,那么这个变量命名习惯上要以$开头。
var bjEle = document.getElementById("bj"); alert(bjEle); alert($(bjEle));
习惯上给jQuery对象命名时,变量名前加上$,便于区分jQuery对象和js DOM对象。
jQuery对象和DOM对象的函数也不能互用,只能调用各自声明过的函数。
使用jQuery核心函数包装DOM对象:$(DOM对象)
例如:var $btnEle = $(btnEle)
jQuery对象转DOM对象
使用数组下标:$btnEle[0]
使用get(index)方法:$btnEle.get(0)
jQuery对象转为DOM对象:有些特殊需求在框架中没有提供,须要使用原生的js实现
它经过标签名,id属性,class属性来查找匹配的DOM元素
用法: $("#id")
用法: $("tagName")
返回值:根据标签名匹配的一个或多个标签,封装成jQuery对象
用法: $(".class")
返回值:根据class属性值匹配一个或多个标签, 封装成jQuery对象
用法: $("*")
返回值: 匹配全部标签, 封装成jQuery对象
用法: $(”div,span,.myClass”)
返回值: 全部匹配选择器的标签, 封装成jQuery对象,用,分割
若是想经过DOM元素之间的层级关系来获取特定元素。例如后代元素、子元素、兄弟元素等。则须要经过层级选择器(或层次选择器)。
用法:$(”form input”)
说明:在给定的祖先元素下匹配全部后代元素(包括子元素的子元素,...)
用法: $(”form > input”)
注意:要区分好后代元素与子元素
用法: $(”label + input”)
说明: 匹配全部紧接在prev元素后的next元素。(即相邻的下一个)
注意:从平级元素中找,而不要去子元素中查找。
用法: $(”form ~ input”)
说明: 匹配prev元素以后的全部 siblings元素,不包含该元素在内,而且siblings匹配的是和prev同辈(兄弟元素)的元素,其后辈子元素不被匹配。
过滤选择器主要是经过特定的过滤规则来筛选出所需的DOM元素, 该选择器都以 “:” 开头
说明: 匹配找到的第一个元素。
用法: $(”tr:last”)
说明: 匹配找到的最后一个元素.与 :first 相对应。
用法: $(”input:not(:checked)”)
说明: 去除全部与给定选择器匹配的元素。相似于”非”,意思是没有被选中的input(即当input的type=”checkbox”)。
用法: $(”tr:even”)
用法: $(”tr:odd”)
说明: 匹配全部索引值为奇数的元素,和:even对应,从 0 开始计数。
用法: $(”tr:eq(0)”)
说明: 匹配一个给定索引值的元素。eq(0)就是获取第一个tr元素。括号里面的是索引值,不是元素排列数。从0开始
用法: $(”tr:gt(0)”)
说明: 匹配全部大于给定索引值的元素。
用法: $(”tr:lt(2)”)
用法: $(”div:contains(’John’)”)
用法: $(”div:has(p)”).addClass(”test”)
说明: 匹配含有选择器所匹配的元素的元素。这个解释须要好好琢磨,可是一旦看了使用的例子就彻底清楚了:给全部包含p元素的div标签加上class=”test”。
用法: $(”td:empty”)
说明: 匹配全部不包含子元素或者文本的空元素
用法: $(”td:parent”)
说明: 匹配含有子元素或者文本的元素。注意:这里是”:parent”可不是”.parent”!感受与上面讲的”:empty”造成反义词。
根据元素的可见和不可见状态来选择相应的元素
说明: 匹配全部的不可见元素,有两种状况:css中display:none和input type=”hidden”的都会被匹配到。一样,要在脑海中完全分清楚冒号”:”,点号”.”和逗号”,”的区别。
用法: $(”tr:visible”)
说明: 匹配全部的可见元素。
用法: $(”div[id]“)
说明: 匹配包含给定属性的元素。例子中是选取了全部带id属性的div标签。
用法: $(”input[name='newsletter']“).attr(”checked”, true)
说明: 匹配给定的属性是某个特定值的元素。例子中选取了全部name属性是newsletter的 input 元素。
用法: $(”input[name!='newsletter']“).attr(”checked”, true)。
说明:匹配全部不含有指定的属性,或者属性不等于特定值的元素。此选择器等价于:not([attr=value]),要匹配含有特定属性但不等于特定值的元素,请使用[attr]:not([attr=value])。以前看到的 :not 派上了用场。
用法: $(”input[name^=‘news’]“)
说明: 匹配给定的属性是以某些值开始的元素。
用法: $(”input[name$=‘letter’]“)
说明: 匹配给定的属性是以某些值结尾的元素。
用法: $(”input[name*=‘man’]“)
说明: 匹配给定的属性是以包含某些值的元素。
用法:$("input[id] [name$='man']]")
说明:复合属性选择器,须要同时知足多个条件时使用。
用法: $(”ul li:nth-child(2)”)
说明: 匹配其父元素下的第N个子或奇偶元素。注意index不一样于eq(index),这里从1开始
用法: $(”ul li:first-child”)
说明: 匹配第一个子元素。’:first’ 只匹配一个元素,而此选择符将为每一个父元素匹配一个子元素。这里须要特别的记忆一下区别。两者的调用者都是针对要操做的元素来说的。
用法: $(”ul li:last-child”)
说明: 匹配最后一个子元素。’:last’只匹配一个元素,而此选择符将为每一个父元素匹配一个子元素。
用法: $(”ul li:only-child”)
说明: 若是某个元素是父元素中惟一的子元素,那将会被匹配。若是父元素中含有其余元素,那将不会被匹配。意思就是:只有一个子元素的才会被匹配!
用法: $(”:input”)
说明:匹配全部 text, textarea, select 和 button 元素 。
用法: $(”:text”)
说明: 匹配全部的单行文本框。
用法: $(”:password”)
说明: 匹配全部密码框。
用法: $(”:radio”)
说明: 匹配全部单选按钮。
用法: $(”:checkbox”)
说明: 匹配全部复选框。
用法: $(”:submit”)
说明: 匹配全部提交按钮。
用法: $(”:image”)
说明: 匹配全部图像域。
用法: $(”:reset”)
说明: 匹配全部重置按钮。
用法: $(”:button”)
说明: 匹配全部按钮.这个包括直接写的元素button。
用法: $(”:file”)
说明: 匹配全部文件域。
用法: $(”input:hidden”)
说明: 匹配全部不可见元素,或者type为hidden的元素.这个选择器就不只限于表单了,除了匹配input中的hidden外,那些style为hidden的也会被匹配。
此选择器主要对所选择的表单元素进行过滤
用法: $(”input:enabled”)
说明: 匹配全部可用元素.意思是查找全部input中不带有disabled=”disabled”的input.不为disabled,固然就为enabled啦。
说明: 匹配全部不可用元素.与上面的那个是相对应的。
说明: 匹配全部被选中的元素(复选框、单选框等,不包括下拉列表select中的option)。
注意:官方文档说明是不包括select中的option,但测试中是包含的。只是不建议你们这样用。
用法: $(”select option:selected”)
说明: 匹配全部选中的option元素。
使用jQuery选择器查询
获得一个包含全部匹配的dom节点对象的jQuery对象
查询jQuery对象内部数据
在Jquery对象中根据selector查找其中匹配的后代节点
根据索引值查找集合中指定位置的元素
index从0开始,也能够为-1,-2,...。其中-1是最后一个元素
根据传入的选择器字符串等再次从调用者中筛选
取得一个包含匹配的元素集合中每个元素的全部子元素的元素集合。
取得一个包含着多个匹配元素的惟一父元素的元素集合。
取得一个包含着全部匹配元素的祖先元素的元素集合(不包含根元素)。能够经过一个可选的表达式进行筛选。
遍历jQuery对象包含的数据:$(selector1).each(function(index, itemDom){ })
遍历jQuery对象所包含的全部节点, 每取一个dom节点对象都去调用设置的回调函数, 并将取出的节点在数组中的下标和节点对象传入函数
jQuery 对象中元素的个数。
jQuery 对象中元素的个数。与length属性做用同样。
向每一个匹配的元素的内部的结尾处追加内容。
把全部匹配的元素追加到另外一个指定的元素集合中
向每一个匹配的元素的内部的开始处插入内容
将每一个匹配的元素插入到指定的元素内部的开始处
在每一个匹配的元素以后插入内容
在每一个匹配的元素以前插入内容
把全部匹配的元素插入到另外一个、指定的元素集合的后面
把全部匹配的元素插入到另外一个、指定的元素集合的前面
$(htmlString)
动态建立的新元素节点不会被自动添加到文档中, 须要使用其余方法将其插入到文档中;
当建立单个元素时, 需注意闭合标签和使用标准的 XHTML 格式. 例如建立一个<p>元素, 可使用 $(“<p/>”) 或 $(“<p></p>”), 但不能使用 $(“<p>”) 或 $(“</P>”)
建立文本节点就是在建立元素节点时直接把文本内容写出来; 建立属性节点也是在建立元素节点时一块儿建立
删除匹配的元素集合中全部的子节点(不包括自己)。
用匹配的元素替换掉全部 selector匹配到的元素。
将全部匹配的元素替换成指定的HTML或DOM元素。
attr(属性名) 返回“属性名”对应的属性值
根据属性名删除对应的属性
获得元素的内容或者设置元素的内容
val() 读取value属性
val(value值) 设置value属性
val([选项值1,选项值2,…,选项值n]) 设置单选框、多选框或下拉列表被选中的值
text(str) 设置元素的文本内容
添加class属性
移除class属性
查看某个样式属性, 或设置某个样式属性
当DOM载入就绪能够查询及操做时,绑定一个要执行的函数
blur事件会在元素失去焦点的时候触发,既能够是鼠标行为,也能够是按tab键离开的
change事件会在元素失去焦点的时候触发,也会当其值在得到焦点后改变时触发。
为每一个匹配元素的特定事件绑定事件处理函数。
bind()的反向操做,从每个匹配的元素中删除绑定的事件
当鼠标移动到一个匹配的元素上面时,会触发指定的第一个函数。当鼠标移出这个元素时,会触发指定的第二个函数。
描述: 事件会按照 DOM 层次结构像水泡同样不断向上直至顶端。即:子元素事件触发引发父元素的事件也触发的现象
解决: 在事件处理函数中返回 false, 会对事件中止冒泡
显示当前标签
隐藏当前标签
切换当前标签的可见性
这个动画效果只调整元素的高度,可使匹配的元素以“滑动”的方式显示出来
这个动画效果只调整元素的高度,可使匹配的元素以“滑动”的方式隐藏起来
经过高度变化来切换全部匹配元素的可见性
经过不透明度的变化来实现全部匹配元素的淡入效果
经过不透明度的变化来实现全部匹配元素的淡出效果
经过不透明度的变化来开关全部匹配元素的淡入和淡出效果