一、jQuery介绍
- 概念:将一些常用的功能封装的函数库
1.1 jQuery的核心函数
//jQuery的核心函数
$()
核心函数里面可以放入变量、字符串、函数及对象
1.2 jQuery的入口函数
//方式1:
jQuery(document).ready(function(){
console.log("入口函数---方式1");
})
//方式2:
$(document).ready(function(){
console.log("入口函数---方式2");
})
//方式3:
jQuery(function(){
console.log("入口函数---方式3");
})
//方式4:推荐方式,在核心函数中传入一个匿名函数,作为入口函数
$(function(){
console.log("入口函数----方式4");
})
1.3 原生js中的入口函数
window.onload = function(){
console.log("原生js的入口函数");
}
将原生js入口函数和jQuery入口函数做对比:
- 原生js入口函数后面的会将前面的覆盖,只由最后一个入口函数有效果,而jqeury入口函数,分别独立执行,互相不影响。
- 原生js入口函数会等待页面标签及属性加载成功才能执行,而jQuery入口函数,页面打开立即执行,没有影响。
二、jQuery选择器
2.1 基本选择器
1、id选择器
$("#one").css("border","3px red solid");
2、标签选择器
$("li").css("background-color","red");
3、class选择器
$(".current").css("background-color","red");
4、全局选择器
$("*").css("border","2px red solid");
5、多选择器
$(".current,#temp,.action").css("border","2px red solid");
2.2 层级选择器
1、多个选择器共同作用,前面的选择器用于筛选范围,最后一个选择器确定标签
$("#one li").css("border","2px blue solid");
2、找出指定父标签下的符合要求的直接子标
$("#one>.current").css("border","3px black solid");
3、找出指定标签next的第一个符合要求的兄弟标签
$("#one+ul").css("border","3px red solid");
4、找出指定标签next的所有符合要求的兄弟标签
$(".action~li").css("border","3px blue solid");
2.3 基本筛选器
1、从符合选择器要求的基础上,筛选出第一个标签
$("#two .current:first").css("border","3px blue solid");
2、从符合选择器要求的基础上,筛选出最后一个标签
$(".current:last").css("border","3px red solid");
3、从符合选择器要求的基础上,筛选出没有使用过指定选择器的标签
$("#two li:not(.current)").css("border","3px black solid");
4、从符合选择器要求的基础上,筛选下标为偶数的标签,下标从0开始
$("#two li:even").css("background-color","#0c0c0c");
5、从符合选择器要求的基础上,筛选下标为奇数的标签,下标从0开始
$("#two li:odd").css("background-color","#FFA500");
6、从符合选择器要求的基础上,筛选出指定下标的标签
$("#two li:eq(2)").css("background-color","#FFA500");
7、从符合选择器要求的基础上,筛选出大于指定下标的标签
$("#two li:gt(2)").css("background-color","#FFA500");
8、从符合选择器要求的基础上,筛选出小于指定下标的标签
$("#two li:lt(2)").css("background-color","#FFA500");
2.4 内容选择器
//内容选择器:通过两个标签之间的文本内容进行筛选,或者是两个标签之间的子标签
1、找出文本中包含指定字符的标签(也可以是子标签文本内容包含)
$("li:contains(1)").css("border","3px red solid");
2、找出指定标签中没有任何文本内容或者没有任何子标签
$("li:empty").css("border","3px blue solid");
3、从符合选择器要求的标签中,去查询子标签是否有满足条件的,如果有,则父标签被选择上
$("ul:has(.current)").css("border","3px black solid");
4、从符合要求的标签中,找出含有子标签或者内容的标签
$("span:parent").css("border","3px red solid");
2.5 可见性选择器
1、从符合选择器要求的标签中,找出隐藏的标签
$("img:hidden").css("display","block");
2、从符合选择器要求的标签中,找出显示的标签
$("img:visible").css("display","none");
2.6 属性选择器
1、找出具有指定属性名称的标签 $("img[title]").css("border-radius","50%");2、找出具有指定属性名称并且具有指定属性值的标签 $("img[title=123]").css("border-radius","50%");3、找出具有指定属性名称并且属性值按照指定字符开头的标签 $("img[title ^= 1]").css("border-radius","50%");4、找出具有指定属性名称并且属性值按照指定字符结尾的标签 $("img[title $= 3]").css("border-radius","50%");5、找出具有指定属性名称并且属性值包含指定字符的标签 $("img[title *= 1]").css("border-radius","50%");6、找出同时具有多个指定属性名称的标签 $("img[title][alt]").css("border-radius","50%");
三、jquery选择器
3.1 子元素选择器
1、:first-child 从符合要求的选择器里面,找出作为该父标签下的第一个子标签
$("#two li:first-child").css("border","3px blue solid");
2、:last-child 从符合要求的选择器里面,找出作为该父标签下的最后一个子标签
$("#two li:last-child").css("border","3px blue solid");
3、:nth-child()从符合要求的选择器里面,找出作为该父标签下的指定位置的子标签,计数从1开始
$("#two li:nth-child(2)").css("border","3px red solid");
4、:only-child从符合要求的选择器里面,找出作为该父标签下的唯一子标签
$("li:only-child").css("border","3px black solid");
3.2 表单选择器
1、:input 将所有带有input特性的标签选择上
$(":input").css("width","200px");
2、:text 选择出表单中type值为text的标签
$(":text").css("border","3px blue solid");
3、:password 选择出表单中type值为password的标签
$(":password").css("border","3px blue solid");
4、:radio 选择出表单中type值为radio的标签
$(":radio").css("width","100px");
5、:checkbox 选择出表单中type值为checkbox的标签
$(":checkbox").css("width","100px");
6、:submit 选择出表单中可以达到表达提交数据特性的标签
$(":submit").css("border","3px black solid");
7、:reset 选择出表单中可以达到重置特性的标签
$(":reset").css("border","3px black solid");
8、:button 选择出表单中选择出type值为button或者button标签
$(":button").css("border","3px black solid");
7、:image 选择出表单中选择出type值为image的标签
$(":image").css("border","3px red solid");
10、:file 选择出表单中选择出type值为file的标签
$(":file").css("border","3px red solid");
3.3 表单对象选择器
1、:获取可用的标签
var temp = $("input:enabled");
2、:获取不可用的标签
var temp = $("input:disabled");
3、获取复选框中已经被勾选上的标签
var temp = $("input:checked");
四、筛选
- 先使用选择器将符合要求的标签找到,再通过筛选的方法,进一步进行过滤,找到最终的标签
4.1 过滤
1、eq(index) 从符合选择器要求的标签中,用方法筛选出第几个下标的标签
$("#two li").eq(1).css("border","3px red solid");
2、first() 从符合选择器要求的标签中,用方法筛选出第一个的标签
$("#two li").first().css("border","3px red solid");
3、last() 从符合选择器要求的标签中,用方法筛选出最后一个的标签
$("#two li").last().css("border","3px red solid");
4、hasClass()用来判断单个标签中是否使用了指定的class选择器名称
var temp = $("#two li").eq(3).hasClass("current");
5、has(选择器) 判断标签的子标签是否满足has中的选择器内容
var temp = $("#three li").has(".action").css("border","3px red solid");
6、not(选择器) 从符合要求的标签中,用方法过滤出没有使用过not指定的选择器
var temp = $("#three li").not(".action").css("border","3px blue solid");
7、slice(0,1) 根据下标的范围选定,包前不包后
$("#two li").slice(1,3).css("border","3px red solid");
4.2 查找
1、children() 找出指定父标签下符合要求的子标签,如果括号不写,则找出全部子标签
$("#one").children().css("border","3px red solid");
2、find() 找出指定父标签下的所有符合要求的子标签
$("#one").find(".current").css("border","3px red solid");
3、next(),找到指定标签的下一个兄弟标签
$("#temp").next().css("border","3px red solid");
4、nextAll(),找到指定标签的后续所有兄弟标签
$("#temp").nextAll().css("border","3px red solid");
5、prev(),找到指定标签紧邻的上面第一个兄弟标签
$("#temp").prev().css("border","3px red solid");
6、prevAll(),找到指定标签上面的所有兄弟标签
$("#temp").prevAll().css("border","3px red solid");
7、siblings()除了自己的所有兄弟标签
$("#temp").siblings(".current").css("background-color","red");
8、parent();找到指定标签的直接父标签
$("#temp").parent().css("border","3px red solid");
9、parents();找到指定标签的上级标签
$("#temp").parents().css("border","3px red solid");
五、事件
5.1 鼠标事件
1、鼠标单击事件
$("#out img").click(function(){
console.log(this);
});
2、鼠标双击事件
$("#out img").dblclick(function(){
console.log(this);
});
3、鼠标移入事件:mouseenter
$("img").mouseenter(function(){
$(this).css("border-radius","50%").css("border","3px red solid");
})
4、鼠标移出事件:mouseleave
$("img").mouseleave(function(){
$(this).css("border-radius","10px").css("border","0px red solid");
})
5、鼠标移入事件:mouseover
$("img").mouseover(function(){
$(this).css("border-radius","50%");
})
6、鼠标移出事件:mouseout
$("img").mouseout(function(){
$(this).css("border-radius","10px");
})
7、鼠标移动事件:mousemove
$("img").mousemove(function(){
})
5.2 键盘事件
1、键盘按下事件
$(window).keydown(function(event){
console.log("键盘被按下"+event.keyCode);
})
2、键盘松开事件
$(window).keyup(function(envet){
console.log("键盘松开"+event.keyCode);
})
5.3 表单事件
1、获取焦点事件
$("#tel").focus(function(){
console.log("聚焦");
})
2、失去焦点事件
$("#tel").blur(function(){
console.log("失去焦点");
})
3、内容做了改变事件
$("#tel").change(function(){
console.log("内容做了更改");
})
六、属性
6.1 属性
//标签中的属性操作:
1、增加属性:如果原标签中没有给属性,则attr表示新增属性
$("img").first().attr("title","哈哈哈哈");
2、获取属性:调用attr方法的时候,只传入一个属性名称,不传入属性值,表示获取原标签的属性值;
var val = $("img").eq(1).attr("title");
console.log(val);
3、修改属性:使用attr方法的时候,传入的属性名和属性值,如果在原标签中已经存在,则作用是修改
$("img").first().attr("title","呵呵呵呵");
4、删除属性
1)将属性值删除,属性名称仍然存在
$("img").first().attr("title","");
2)将整个属性删除
$("img").first().removeAttr("title");
6.2 css属性:只针对标签中的class属性的操作
1、给指定标签添加class属性值
$("img").eq(1).addClass("current");
2、将指定标签中的class属性删除
$("img").first().removeClass("current");
3、判断一个标签中是否使用了指定的class属性名称
$("img").first().hasClass("current");
6.3 文本、html和value值
1、html();和原生js中的innerHTML作用一致。
1)如果在html括号中不给任何参数,则表示获取该表现下的子标签或者文本
var val = $("#commit").html();
2)如果在html括号中给普通文本,表示将该标签的子标签或者文本替换成括号中的文本,如果括号中给的是标签,则将该标签下的子标签或者文本替换成新的标签。
$("#commit").html("<p>");
2、text();和原生js中的innerText作用一致
1)如果text括号中没有给参数,则表示获取两个标签之间的文本数据
var val = $("#commit").text();
2)如果text括号中给了参数,则表示将该标签之间的文本进行替换 $("#commit").text("222");
3、val();和原生js种的value属性作用一致
1)如果val()括号里面不给参数,表示获取输入框中的值或则带有value属性的值
var val = $("#tel").val();
2)如果val()括号里面有参数,白哦是给输入框赋值或者给带有value属性赋值
$("#tel").val("000000");
七、文档操作
7.1 内部插入:在指定的父标签下,添加子标签
1、append() 在指定的父标签内部插入,并且是作为最后一个子标签
$("#out").append("<img src = '../img/cat1.jpg'>");
2、appendTo()在指定的父标签内部插入,并且是作为最后一个子标签
$("<img src = '../img/cat2.jpg'>").appendTo("#out");
3、prepend() 在指定的父标签内部插入,作为第一个子标签
$("#out").prepend("<img src = '../img/cat1.jpg'>");
4、prependTo()在指定的父标签内部插入,作为第一个子标签
$("<img src = '../img/cat2.jpg'>").prependTo("#out");
7.2 外部插入:在指定位置添加新的标签
1、after() 在指定的标签之后添加新的标签
$("#out").children().eq(1).after("<img src = '../img/cat1.jpg'>");
2、insertAfter() 在指定的标签之后添加新的标签
$("<img src = '../img/cat2.jpg'>").insertAfter("#out img:eq(1)");
3、before() 在指定的标签之前添加新的标签
$("#out").children().eq(1).before("<img src = '../img/cat1.jpg'>");
4、insertBefore()在指定的标签之前添加新的标签
$("<img src = '../img/cat2.jpg'>").insertBefore("#out img:eq(1)");
7.3 包裹:将已经存在的标签,用新标签将其包裹
1、wrap()
$("#out").children().eq(2).wrap("<div>");
7.4 删除
1、empty(),将指定父标签下的所有子标签及内容清空
$("#out").empty();
2、remove(),将指定的标签删除
$("#out").children().eq(1).remove();
八、定时器
//1、setTimeout(),网页打开之后,延迟一定时间才指定函数代码,只会执行一次
//语法:setTimeout("函数名称()",时间毫秒单位)
var timer = setTimeout("fun1()",5000);
//清除定时器
clearTimeout(timer);
2、setInterval(),在网页打开之后,每间隔一定时间就执行一次,直到定时器清楚
//语法:setInterval("函数名称()",时间毫秒单位);
var timer = setInterval("fun1()",3000);
//清除定时器
clearInterval(timer);
九、BOM对象
1、实际用到的文档对象document实际属于window对象
window.document.getElementById("");
2、弹出框输出
window.alert("");
3、弹出框输入
window.prompt();
4、获取当前浏览器body部分的高度和宽度
var width = window.innerWidth;
var height = window.innerHeight;
5、获取当前浏览器可见的高度和宽度
var w1 = window.screen.availWidth;
var h1 = window.screen.availHeight;