jQuery
什么是jQuery
- 是一个js代码的框架
- 可以让程序员 写的更少 但做的更多
- 此框架本身就是使用js写的
jQuery优势
- 简化js代码
- 可以像css一样获取元素
- 可以直接修改页面样式(css)
- 解决兼容性问题
jQuery的引入
- 因为jQuery就是js代码 所以引入方式和普通js文件一样
$介绍
- $是jQuery的简写 $("#div")=jQuery("#div")
jQuery对象和js对象的转换
- js的对象只能调用js自己的函数,如果js对象需要调用jQuery里面的函数,需要把js对象转成jQuery对象
- 把js对象转成jQuery对象
jQuery选择器
基本选择器
- 标签名选择器
$("div") 匹配文档中所有的div
- id选择器
$("#id")
- 类选择器
$(".类名")
- 分组选择器
$("div,#id,.class")
- 所有元素
$("*")
层级选择器
- $("div span") 匹配div下所有的span元素
- $("div>span") 匹配div下所有子为span的元素
- $("div+span") 匹配div后面紧邻的span兄弟元素
- $("div~span") 匹配div后面所有的span兄弟元素
层级函数
- 获取元素的所有兄弟元素
$("#two").siblings("div")
- 获取元素的哥哥元素
$("#two").prev("div")
- 获取元素的哥哥们元素
$("#two").prevAll("div")
- 获取元素的弟弟元素
$("#two").next("div")
- 获取元素的弟弟们元素
$("#two").nextAll("div")
- 元素.parent() 得到上级父元素
- 元素.children() 得到所有的子元素
- 元素.children().eq(0) 获取第n个子元素
- $("div").eq(0) 得到查询结果中的第几个
- 元素.children("#aaa") 查询m元素中id为aa的子元素
过滤选择器
- $("div:first") 匹配所有div中的第一个元素
- $("div:last") 匹配所有div中的最后一个元素
- $("div:even") 匹配所有div中偶数div 从0开始
- $("div.odd") 匹配所有div中奇数div 从0开始
- $("div.eq(n)") 匹配所有div中下标为n的元素 从0开始
- $("div.lt(n)") 匹配所有div中下标小于n的元素 从0开始
- $("div.gt(n)") 匹配所有div中下标大于n的元素 从0开始
- $("div:not(.one)") 匹配所有div中 class不为one的元素
内容选择器
- $("div:has(p)") 匹配所有包含p标签的div
- $("div:empty") 匹配所有空的div
- $("div:parent") 匹配所有非空的div
- $("div:contains('文本内容')") 匹配包含'文本内容'的div
可见选择器
- $("div:hidden") 匹配所有隐藏的div元素
- $("div:visible") 匹配所有可见的div元素
jq中显示相关的函数
- 让隐藏的元素显示
$("div:hidden").show();
- 让显示的元素隐藏
$("div:visible").hide();
- 切换元素的显示状态
$("div").toggle();
属性选择器
- $("div[id]") 匹配有id属性的div元素
- $("div[id='d1']") 匹配id属性等于d1的div
- $("div[id!='d1']") 匹配id属性不等于d1的div
子元素选择器
- $("div:nth-child(n)") n从1开始,匹配div中第n个子元素
- $("div:first-child") 匹配div中第1个子元素
- $("div:last-child") 匹配div中最后一个子元素
表单选择器
- $(":input") 匹配所有的input中 文本框,密码框,单选,复选框,下拉选,文本域(textarea),button
- $(":password") 匹配所有密码框
- $(":radio") 匹配所有单选框
- $(":checkbox") 匹配所有复选框
- $(":checked") 匹配所有被选中的 单选/复选/下拉选option
- $("input:checked") 匹配所有被选中的单选和复选
- $(":selected") 匹配所有被选中的下拉选option
文档操作
- 创建元素
var $d = $("<div>abc</div>");
- 添加元素
- 插入元素
- 删除元素
- 通过自己删除
$("#id").remove();
- 先得到所有的li 然后删除里面id为sh的
$("li").remove("#sh");
- 修改样式
- 属性
- 文本
- html
在事件中获取事件源的方式
- 如果元素动态绑定事件,this为事件源 $(this)
- 非动态绑定 event.target||event.srcElement
- 绑定事件时传递this ,事件中用变量接受,此变量就是事件源
jq事件相关
常用事件
- click
- blur 失去焦点
- focus得到焦点
- change 值发生改变
- ready 页面加载完成 onload
$(document).ready(function(){});
$(function(){});
在事件中获取事件源的方式
- 如果元素动态绑定事件,this为事件源
- 非动态绑定 event.target||event.srcElement
- 绑定事件时传递this ,事件中用变量接受,此变量就是事件源
事件模拟
事件的合并
- 切换显示和不显示 toggle();
- hover(fn1,fn2); 相当于onmouseover+onmouseout
鼠标移入执行fn1,移出执行fn2
动画