jQuery
- 什么是jQuery
- 是一个JavaScript框架
- 让程序员写的更少 实现的更多
- 简化原生js代码
- jQuery本身就是通过js语言所写的一个js文件
- 可以像css一样通过选择器查找元素
js: var div = document.getElementById(“id”);
jq: $("#id") - 可以像css一样批量添加样式
js: var imgs = document.getElementsByTagName(“img”);
for(var i=0;i<imgs.length;i++){
imgs[i].style.display=“none”;
}
jq: $(“img”).css(“display”,“none”); - 可以解决部分兼容性问题
引入jQuery
- 由于jq本身就是一个js文件 所以引入方式和一个普通的js文件一样通过Script标签的src属性引入
js对象和jq对象互相转换
- js转jq
var jq = $(js); - jq转js
var js = jq[0];
选择器
基础选择器
- 标签名选择器 $(“div”)
- id选择器 $("#id")
- 类选择器 $(".class")
- 分组选择器 $(“div,#id,.class”)
- 任意元素选择器 $("*")
层级选择器
- $(“div span”) 匹配div里面所有的span
- $(“div>span”) 匹配div里面span子元素
- $(“div+span”) 匹配div的弟弟span元素
- $(“div~span”) 匹配div的弟弟们span元素
- 和层级相关的方法
- 匹配元素的所有兄弟元素
$("#abc").siblings(); //得到id为abc元素的所有兄弟
$("#abc").siblings(“div”); //得到id为abc元素的所有div兄弟 - 匹配元素的哥哥
$("#abc").prev(); 得到元素的哥哥元素
$("#abc").prev(“p”); 得到元素的哥哥p元素 - 匹配元素的哥哥们
$("#abc").prevAll(); 得到元素的所有哥哥元素
$("#abc").prevAll(“span”); 得到元素的所有哥哥元素 - 匹配元素的弟弟
$("#abc").next(); 得到元素的弟弟元素
$("#abc").next(“p”); 得到元素的弟弟p元素 - 匹配元素的弟弟们
$("#abc").nextAll(); 得到元素的弟弟们元素
$("#abc").nextAll(“p”); 得到元素的弟弟们p元素
- 匹配元素的所有兄弟元素
过滤选择器
- $(“div:first”) 匹配所有div中的第一个div元素
- $(“div:last”) 匹配所有div中最后一个div元素
- $(“div:even”) 匹配所有div中下标为偶数的div元素
- $(“div:odd”) 匹配所有div中下标为奇数的div元素
- $(“div:eq(n)”) 匹配所有div中下标值为n的div元素
- $(“div:lt(n)”) 匹配所有div中下标值小于n的div元素
- $(“div:gt(n)”) 匹配所有div中下标值大于n的div元素
- $(“div:not(.abc)”) 匹配所有div中class值不为abc
内容选择器
- $(“div:has§”) 匹配包含p子元素的div
- $(“div:empty”) 匹配空的div
- $(“div:parent”) 匹配非空的div
- $(“div:contains(‘xxx’)”) 匹配包含xxx文本的div
可见选择器
- $(“div:hidden”) 匹配所有隐藏的div
- $(“div:visible”) 匹配所有可见的div
- 和隐藏显示相关的方法
$("#abc").hide(); 隐藏
$("#abc").show(); 显示
$("#abc").toggle(); 隐藏、显示切换
属性选择器
- $(“div[id]”) 匹配包含id属性的div元素
- $(“div[id=‘xxx’]”) 匹配id值为xxx 的div元素
- $(“div[id!=‘xxx’]”) 匹配id值不为xxx的div元素
子元素选择器
- $(“div:first-child”) 匹配是div元素,并且是第一个子元素
- $(“div:last-child”) 匹配是div元素,并且是最后一个子元素
- $(“div:nth-child(n)”) 匹配是div元素,并且是第n个子元素 从1开始
表单选择器
- $(":input") 匹配form表单中所有的控件
- $(":password") 匹配所有密码框
- $(":radio") 匹配所有单选
- $(":checkbox") 匹配所有多选
- $(":checked") 匹配所有选中的单选、多选、下拉选
- $(“input:checked”) 匹配所有选中的单选和多选
- $(":selected") 匹配所有选中的下拉选
创建和添加元素
- 创建元素
var d = $("<div id=‘d1’>abc</div>"); - 添加元素
父元素.append(d); //添加到最后面
父元素.prepend(d);//添加到最前面 - 插入元素
$("#abc").before(新元素);
$("#abc").after(新元素); - 删除元素
$("#abc").remove();
获取和修改元素的文本内容
$("#abc").text();
$("#abc").text("xxx");
获取和修改元素的html内容
$("#abc").html(); 获取
$("#abc").html("<h1>abc</h1>");
获取和修改元素的css样式
$("#abc").css("left"); 获取left的属性值
$("#abc").css("left","100px"); 赋值
$("#abc").css({"width":"100px","height":"200px"});
获取和修改元素的属性
$("#abc").attr("class"); 获取
$("#abc").attr("class","c1"); 赋值
获取元素的子元素和父元素
- 元素对象.children()
- 元素对象.parent()
jQuery事件相关
- 常见事件
- 鼠标事件: 点击事件 click 鼠标移入事件mouseover 鼠标移出mouseout 鼠标按下mousedown 鼠标抬起mouseup 鼠标移动mousemove
- 键盘事件: 键盘按下 keydown 键盘抬起 keyup
- 状态改变事件: 页面加载完成$(function(){}) 获取焦点focus 失去焦点blur 表单提交submit 值改变change 窗口尺寸改变resize
- 事件模拟
元素对象.trigger(“事件名”); - 鼠标移入移出事件合并
元素对象.hover(鼠标移入执行方法,鼠标移出执行方法);
动画相关
隐藏hide(3000) 显示 show() 淡出fadeOut() 淡入fadeIn() 上滑slideUp() 下滑slideDown() 自定义animate({},时间);
if(this.value=="隐藏"){
$("img").hide(3000,function(){
alert('动画做完了');
});
}else if(this.value=="显示"){
$("img").show(2000,function(){
alert('xxx');
});
}else if(this.value=="淡出"){
$("img").fadeOut(1000);
}else if(this.value=="淡入"){
$("img").fadeIn(2000);
}else if(this.value=="上滑"){
$("img").slideUp(2000);
}else if(this.value=="下滑"){
$("img").slideDown(2000);
}else{//自定义
$("img").animate({"left":"200px"},1000)
.animate({"top":"200px"},1000)
.animate({"left":"0px"},1000)
.animate({"top":"0px"},1000)
.animate({"width":"200px"},1000)
.animate({"width":"100px"},1000)
.fadeOut(3000,function(){
$("img").remove();
});
}
});
});