**概念:**JavaScript的函数库
功能:
帮开发者做重复的劳动
兼容
1.0 兼容IE8 及以下
2.0 很少人使用 不兼容ie678
3.0 不兼容ie678 主流浏览器 正在开发 3.5.1
**jQuery对象:**在JQuery库中,可以通过本身自带的方法获取页面 DOM元素 的对象
$==jQuery
$() == jQuery() ==new jQuery()
jQuery通过$()来获取元素,()传入选择器
$(selector).action() ->
$(选择器).执行操作()
$(document).ready(function(){
// 代码
});
//简写语法:
$(function(){
//代码
});
在DOM加载完成后才可以对DOM进行操作。
//元素选择器
$("p")
//id选择器
$("#app")
//class选择器
$(".test")
//其他
$("*"):选取所有元素
$(this):选取当前HTML元素
$("p.intro"):选取class为intro的元素
$("p:first"): 选取第一个元素
$("ul li:first"):选取第一个元素的第一个
$("ul li:first-child"):选取每个元素的第一个
$("[href]"):选取带有href属性的元素
$(":button") :选取所有 type="button" 的元素
$("tr:even"):选取偶数位置的元素 odd奇数
$("li:eq(2)"): 选取下标为2的元素
基本事件 :
//格式
$("p").click(function(){
// 动作触发后执行的代码
});
//获取键值
e.keyCode (原生
e.which (jQuery封装
//获取
${"div"}
//新建
$("新建的部分")
$("#btn1").click(function () {
alert("Text: " + $("#test").text());
});
$("#btn2").click(function () {
alert("HTML: " + $("#test").html());
});
$("#btn3").click(function () {
alert("值为: " + $("#test").val());
});
$("#btn4").click(function () {
alert($("#baidu").attr("href"));
});
$("#btn5").click(function () {
$("#baidu").attr("href",
"http://www.baidu.com");
});
<button id="btn1">text</button>
<button id="btn2">html</button>
<button id="btn3">value</button>
<button id="btn4">herf</button>
<button id="btn5">设置herf</button>
<button id="test" value="我是按钮的value"> <span>我
是按钮 test</span> </button>
<a href="#" id="baidu">百度一下</a>
//元素添加
<div class="d2"></div>
<span class="s2">添加</span>
$(function () {
//把s2放入d2
//方法1.找到span 将span追加到div末尾
// $(".s2").appendTo($(".d2"))
//方法2 在div尾部追加找到的span
$(".d2").append($(".s2"))
// $(".d2").mouseover(function(){
// $(".d2").css("background-color",green)
// })
.mouseover(function () {
$(".d2").css("background-color", "green")
})
.mouseout(function () {
$(".d2").css("background-color", "blue")
})
//元素追加
<div class="d3">
这是d3
<p class="p1">删除的</p>
</div>
<span class="s3">
这是s3
</span>
$(".d3").click(function () {
// $(".d3").prepend($(".s3"))
$(".s3").prependTo($(".d3"))
$(".s3").insertBefore($(".d3"))
$(".s3").insertAfter($(".d3"))
//创建
$("")
.text("这是p")
.attr("class","palegreen")
.insertAfter($(".d3"))
})
//元素删除
$(function(){
$(".d3").remove();//删除被选元素及其子元素
$("p").remove(".p1")
//添加过滤条件 删除class="p1"的所有元素
//注意:使用过滤器删除时,不能删除满足过滤器的子元
//素,过滤器与选择器应该是同级元素。
// $(".p1").empty()
//清空子元素
})
//格式
css("属性","值")
css({属性1:值1,属性2:值2})
添加CSS:
$("h1,h2,p").addClass("blue"); //多个元素添加同一
个样式类
$("div").addClass("important blue"); //一个元素
添加多个样式类
$("h1").removeClass("blue"); //移除样式类
$("p").toggleClass("blue"); //对元素进行添加/删除
样式类的切换操作
获取与设置CSS:
css() - 设置或返回被选元素的一个或多个样式属性
//返回CSS属性
css("属性名称");
$("p").css("background-color");
//设置CSS属性
css("propertyname","value");
$("p").css("background-color","yellow");
//设置多个css属性
css({"propertyname":"value","propertyname":"val
ue",...});
$("p").css({"background-color":"yellow","fontsize":"200%"});
jQuery 提供多个处理尺寸的重要方法:
唯一需要注意的地方,设置了 box-sizing 后,width() 获取的是 css 设置的 width 减去 padding 和 border 的值。 想要获取带margin大小的width, 可以使用outerWidth(true)
// width() 不包括padding margin border
alert($("div").width())
// 不包含 border和margin
// alert($("div").innerWidth())
// 包含margin
// alert($("div").outerWidth(true))
$(window).scroll(function () {
console.log($(window).scrollTop());
})
$(function(){
$(".grand").find(".one"); //返回返回指定元
素中所有类名为one的后代元素
$(".grand").find("*"); //返回指定元素的所
有后代元素
});
拥有相同父元素的元素
first(), last() 和 eq(),它们允许基于其在一组元素中的位置来选择一个特定的元素。
filter() 和 not() 允许您选取匹配或不匹配某项指定标准的 元素。
//not 和 eq 可以实现反选的效果。
//选取索引值不为 1 的 p 元素,并把背景颜色设置为黄色
$("p").not(":eq(1)").css("backgroundcolor","yellow");
hide() / show() - 隐藏/显示 HTML 元
$(selector).hide(speed,easing,callback);
$(selector).show(speed,easing,callback);
//参数说明:
//speed,可选参数,规定隐藏/显示的速度,可以取以
下值:"slow"、"fast" 或毫秒。
//easing 可选参数, 选择运动曲线
//callback,可选参数,隐藏或显示完成后所执行的
函数名称。
$("#show").click(function(){
$("p").show();
});
$("button").click(function(){
$("p").hide(1000);
});
$(document).ready(function(){
$(".hidebtn").click(function(){
$("div").hide(1000,"linear",function(){
alert("Hide() 方法已完成!");
});
});
});
//第二个参数是一个字符串,表示过渡使用哪种缓动函数。
toggle() - 切换 hide() 和 show() 方法
$(selector).toggle(speed,callback);
//参数说明:
// speed,可选参数,规定隐藏/显示的速度,可以取以下值:"slow"、"fast" 或毫秒。
//callback,可选参数,隐藏或显示完成后所执行的函数名称。
$("button").click(function(){
$("p").toggle();
});
对于可选的 callback 参数,有以下3点说明:
$(selector).fadeOut(speed,callback)
//参数说明同上
$(selector).fadeTo(speed,opacity,callback);
//speed opacity 必选
animate()方法
$(selector).animate({params},speed,callback);
//params,必需的参数,定义形成动画的 CSS 属性。
//speed,可选参数,规定效果的时长。它可以取以下值:"slow"、"fast" 或毫秒。
//callback,可选参数,动画完成后所执行的函数名称。
$("button").click(function(){
//要先给元素设置position
$("div").animate({left:'250px'});
});
//操作多个属性
$("button").click(function(){
$("div").animate({
left:'250px',
opacity:'0.5',
height:'150px',
width:'150px'
});
});
//当使用 animate() 时,必须使用 Camel 标记法书写所有的属性名, 如 padding-left ==>paddingLeft
//animate() 使用相对值
//可以定义相对值(该值相对于元素的当前值)。需要在值的前面加上 += 或 -=:
$("button").click(function(){
$("div").animate({
left:'250px',
height:'+=150px',
width:'+=150px'
});
});
//animate() 使用预定义值
//可以把属性的动画值设置为 "show"、"hide" 或 "toggle":
$("button").click(function(){
$("div").animate({
height:'toggle'
});
});
//animate()使用队列功能
//默认地,jQuery 提供针对动画的队列功能。这意味着如果您在彼此之后编写多个 animate() 调用,jQuery 会创建包含这些方法调用的"内部"队列。然后逐一运行这些 animate 调用。
$("button").click(function(){
var div=$("div");
div.animate({height:'300px',opacity:'0.4'},"s
low");
div.animate({width:'300px',opacity:'0.8'},"sl
ow");
div.animate({height:'100px',opacity:'0.4'},"s
low");
div.animate({width:'100px',opacity:'0.8'},"sl
ow");
});
//示例2:
$("button").click(function(){
var div=$("div");
div.animate({left:'100px'},"slow");
div.animate({fontSize:'3em'},"slow");
});
**stop()*停止动画或效果,在它们完成之前。 stop() 方法适用于所有 jQuery 效果函数,包括滑动、淡入 淡出和自定义动画。
$(selector).stop(stopAll,goToEnd);
//参数说明
//stopAll,可选参数,规定是否应该清除动画队列。默认是 false,即仅停止活动的动画,允许任何排入队列的动画向后执行。
//goToEnd,可选参数,规定是否立即完成当前动画。默认是 false。
//因此,默认地,stop() 会清除在被选元素上指定的当前动画。
stop(false,false)//停止当前动画,继续下一动画
stop(true,false)//停止当前动画序列(停止所有)
stop(true,true)//停止当前动画序列(停止所有),当前进行的动画直接达到目标值
如需链接一个动作,只需简单地把该动作追加到之前的动作上
$("#p1").css("color","red")
//两个动作写在一起
.slideUp(2000)
.slideDown(2000);