在网上下载jQuery
要用的文件,在写jQuery
的时候进行引入即可。jQuery下载
在js中代码如下:
<script src="F:\jQuery\jquery-1.12.4.js"></script>
js
的入口函数执行要比jQuery
执行的晚一些jQuery
的入口函数会等待页面加载完成才执行,但不会等待图片的加载js
的入口函数会等待页面加载完成,并且等待图片加载完成才开始执行 //js的入口函数
window.onload=function(){
console.log("这是js入口函数");
};
//两种jQuery的入口函数:
//1.了解写法
$(document).ready(function(){
console.log("这是jQuery入口函数的第一种写法");
});
//2.主要写法
$(function(){
console.log("这是jQuery入口函数的第二种写法");
});
window.onload
与 $ (document).ready()
如下不同:$ ()
等价于 $ (document)
jQuery
对象:使用jQuery的方式获取到的对象DOM
对象:使用js的方式获取到的对象jQuery
对象与js
对象的区别:js对象不能调用jQuery对象的方法jQuery
对象与js
对象的联系:jQuery对象其实就是js对象的一个集合,伪数组,里面存放的很多js对象jQuery
对象不能调用DOM
对象的方法DOM
对象调用jQuery
对象的方法,需要把DOM
对象转换成jQuery
对象//A. DOM对象转换成jQuery对象:花钱$()
$(clothes).text="hehe";
//B. jQuery对象怎么转换成DOM对象:(取出来)
//第一种方法:
$li[0].style.backgroundColor="red"; //用$li[0]方法
//第二种方法:
$li.get(2).style.backgroundColor="yellow"; //用get()方法
可以参考如下链接 jQuery API
.css(name,value)
$("li").css("backgroundColor","pink").css("color","red").css("fontSize",32);
//给li设置背景色为粉色,字体颜色为红色,字体大小为32px
$("li").css({
backgroundColor:"blue",
color:"red",
fontSize:"32px",
border:"1px solid black" //注意这里并列用逗号,最后一个属性不加标点
});
console.log($("li").css("fontSize"));
$("input").eq(0).click(function(){
$("li").addClass("basic");
//添加一个basic类
});
$("input").eq(1).click(function(){
$("li").addClass("bigger"); //添加一个bigger类
});
$("input").eq(2).click(function(){
$("li").removeClass("basic");
//移除basic类
});
true
,没有返回false
$("input").eq(3).click(function(){
console.log($("li").hasClass("bigger"));
//判断有没有bigger这个类
});
//判断li有没有basic类,如果有移除它,没有则添加它
$("input").eq(4).click(function(){
//一般写法:
if ($("li").hasClass("basic")){
$("li").removeClass("basic");
}
else{
$("li").addClass("basic");
}
//用toggleClass也能实现:
$("li").toggleClass("basic");
});
attr(name, value)
$("img").attr("alt","美丽的图片"); //把图片的alt属性改成“美丽的图片”
$("img").attr("tilte","错错"); //改title属性
$("img").attr({
alt:"美丽的图片",
title:"错错",
aa:"bb" //也能凭空设置属性
});
console.log($("img").attr("alt"));
被选元素删除一个或多个属性,如需移除若干个属性,使用空格分隔属性名称
$("input").removeAttr("checked class");
//移除了checked和class属性
对于布尔类型的属性,不要用attr
方法,应该用prop
方法
prop
用法跟attr
方法一样
$(function(){
$("input").eq(0).click(function(){
$("#ck").prop("checked",true);
});
$("input").eq(1).click(function(){
$("#ck").prop("checked",false);
});
});
val()
方法可以获取到文本框、下拉列表框、单选框、复选框的内容,也可以给文本框赋值,还可以设置表单元素的radio、checkbox、option的默认选项
<input type="radio" value="11">选项1
<input type="radio" value="22">选项2
<input type="radio" value="33">选项3
<script src="jquery-1.12.4.js"></script>
<script>
$(function(){
alert($("input").val()); //获取input的value内容
$("input").val("aaaa"); //将input的value属性值设置为aaaa
$("input:radio").val(["22","33"]); //这里填写默认选中的value值,目的是选中“选项1”,“选项2”
});
</script>
html()
js
中的innerHTML console.log($("div").html()); //获取第一个div元素的内容
$("div").html("\我是文本\
"); //可以识别标签 -->输出"我是文本"四个字
text()
js
中的innerText console.log($("div").text()); //获取所有div元素的内容
$("div").text("我是文本
"); //不可识别标签 -->输出"我是文本
"
.css(name,value)
$("#four").css("backgroundColor","red");
$(".green").css("backgroundColor","green");
$("li").css("color","red");
$("li").css({"color":"red","backgroundColor":"pink"});
$(selector)
HTML
页面,每个元素的id属性值应该互不相同,是唯一的。但是如果对多个元素定义了相同的id属性值,#id
选择器将只选择第一个匹配的元素(这种情况应该避免发生)。element
、#id
选择器相比,.class
选择器的执行效率很低,应该尽可能少地使用。或者可以把.class选择器和element选择器配合在一起使用,选取出的元素要同时符合class属性值和标记名,这样的形式能够显著提高搜索性能。$()
中使用逗号,即可同时获取多个元素选择器 | 示例 | 解释说明 |
---|---|---|
后代选择器 | $(s1 s2) | 在给定的祖先元素s1下匹配所有的后代元素s2 |
子代选择器 | $(s1 > s2) | 在给定的父元素s1下匹配所有的子元素s2 |
+选择器 | $(s1 + s2) | 匹配所有紧接在 s1元素后的 s2元素 |
~选择器 | $(s1 ~ s2) | 匹配 s1元素之后的所有 s2元素 |
(:)
开头$(function(){
//下标为偶数,效果中奇数行变色,因为第一个li的下标是0
$("li:even").css("backgroundColor","red");
//下标是奇数
$("li:odd").css("backgroundColor","pink");
//首个
$("li:first").css("fontSize","32px");
//末尾
$("li:last").css("fontSize","32px");
//想让第几个变
$("li:eq(3)").css("color","green");
});
(1) 基本过滤选择器的索引,是从0开始计数。比如第一个元素的索引值为0,第二个元素的索引值为1,……
(2) “:first”
和“:last”
选择器,虽然获取到的是一个元素,但是返回的jQuery对象仍然是一个集合。
(3)由于$(selector)
中使用的选择器参数是一个字符串,当在选择器中使用变量时,必须使用加号将这个变量与其他字符串联在一起。例如,var i=3; $(“p:eq(“+i+”)”) 可以选取第4个p元素。
(4) :not
选择器的参数selector可以使用任意复杂的选择器。
(5) 选择器animated
在捕捉动画效果元素时,先要定义一个动画效果函数animateIt()
,然后执行该函数,选择器才能获取动画效果元素,并设置样式。
内容过滤选择器的过滤规则主要体现在它所包含的子元素和文本内容上,其文字内容可以模糊或绝对匹配进行元素定位
(1)在:contains(text)
内容过滤选择器中,如果参数text内容出现在匹配元素的任何后代元素中,也认为该元素含有文本内容text;如果参数text使用英文字母,则有大小写的区别。
(2)input、img、br、hr等标记属于不包含后代元素和文本的空元素。
(3)如果jQuery选择器选择的元素在页面上不存在时,浏览器不会报错,后续代码依旧可以顺利执行。
(1)CSS属性display
取值为none
的元素、属性type
取值为hidden
的input
元素属于不可见元素;页面的head、meta、title、script、style也属于不可见元素
(2)CSS属性visibility
取值为hidden
的元素虽然不可见,但如果在文档中占有空间,则依旧规定符合:visible选择器,并不会被:hidden选择器选中;html
、body
和
元素属于可见元素
show([speed],[callback])
$("input").eq(0).click(function(){
$("div").show('fast');
});
hide([speed],[callback])
$("input").eq(1).click(function(){
$("div").hide(1000);
});
toggle([speed],[callback])
切换 $("input").eq(2).click(function(){
$('div').toggle(1000);
});
$("li").click(function(){
$(this).hide(1000,function(){
$(this).css("background-color","red");
//在执行完hide动画之后,把此元素的背景改为红色
});
});
slideDown([speed],[callback])
滑入 $("input").eq(0).click(function(){
$("div").slideDown('normal');
});
slideUp([speed],[callback])
滑出 $("input").eq(1).click(function(){
$("div").slideUp(1000);
});
slideToggle([speed],[callback])
切换 $("input").eq(2).click(function(){
//slideToggle:如果滑入状态就执行滑出的动画,否则反之
$("div").slideToggle();
});
fadeIn([speed],[callback])
淡入 $("input").eq(0).click(function(){
$("div").fadeIn('normal');
});
fadeOut([speed],[callback])
淡出 $("input").eq(1).click(function(){
//fadeOut:如果不传参数,有一个默认值normal
$("div").fadeOut(1000);
});
fadeToggle([speed],[callback])
切换 $("input").eq(2).click(function(){
$("div").fadeToggle();
});
fadeTo([speed],opacity)
控制opacity不透明度 $("input").eq(3).click(function(){
$("div").fadeTo(1000,0.3);
//参数一是 速度;参数二是透明度【必须写参数二】
});
animate(params,[speed],[easing],[fn])
自定义动画
swing
(由慢到快再到慢)效果,匀速是linear
$("div").animate(
{left:800,
fontSize:10em}, //第一个参数是动画的样式
2000, //第二个参数是动画执行的时间
"swing", //第三个参数是动画执行的效果
function(){ //第四个参数是回调函数
$(this).css("backgroundColor","red");
});
注意:animate()自定义动画还能这么使用
//持续向右移动800px
$("div").animate({left:"+=800px"})
可以将动画放在一个队列里,一个一个执行
$(function(){
$("#btn").click(function(){
//把这些动画存储到一个动画队列里面,一个一个执行
$("div").animate({left:800})
.animate({top:400})
.animate({width:300, height:300})
.animate({top:0})
.animate({left:0})
.animate({width:100,height:100})
.slideUp();
});
});
stop([clearQueue],[jumpToEnd])
停止当前正在执行的动画
clearQueue
:是否清除动画队列 true
、false
。如果设置成true,则清空队列。可以立即结束动画。jumpToEnd
: 是否跳转到当前动画的最终效果 true
、false
。如果设置成true,则完成队列。可以立即完成动画。.stop().animate()
$(把节点标签写进去即可)
$("- 苹果
")
元素, 可以使用 $(“”)
或 $(“”)
, 但不能使用 $(“”)
。//创建一个a标签,并给超链接设置成www.baidu.com
var $li=$('');
1. 添加到内部的后面
append()
添加到子元素的最后面appendTo()
追加到另一个指定的元素元素集合中 $("div").append($("p")); //把p标签添加到div里面的最后
$("p").appendTo($("div")); //把p追加到div里,此方法最常用
2. 添加到内部的前面
prepend()
添加到子元素的最前面prepentTo()
把所有匹配的元素前置到另一个、指定的元素元素集合中 $("div").prepend($("p")); //把p加到div内部的前面
$("div").prepentTo($("div")); //把p加到div内部的前面
3. 添加到外部的后面
after()
在每个匹配的元素之后插入内容insertAfter()
把所有匹配的元素插入到另一个、指定的元素元素集合的后面 $("div").after($("p")); //在div的外面的后面添加p标签
$("p").insertAfter("div"); //在div的外面的后面添加p标签
4. 添加到外部的前面
before()
在每个匹配的元素之前插入内容insertBefore()
把所有匹配的元素插入到另一个、指定的元素元素集合的前面 $("div").before($("p"));
$("p").insertBefor($("div"));
html()
、empty()
:清空一个元素的内容,不建议使用html("")清空
示例:
$("div").html(""); //这种方法最好不要用,会发生内存泄露
$("div").empty(); //清空:清理门户,自己留下
empty()
:清空元素中的所有后代节点, 不包含自身的属性节点 ;不会把匹配的元素从jQuery对象中删除,以后可以再使用这些元素。另外除了这个元素本身得以保留之外,其他的比如其绑定的事件、附加的数据等都会保留下来html()
:该方法可以把指定元素中的内容清掉,但绑定在内容元素上的事件不会被清除,占用内存(内存泄漏,特别是服务器)remove()
$("div").remove();
detach()
$("div").detach();
replaceWith()
将所有匹配的元素替换成指定的HTML或DOM元素replaceAll()
用匹配的元素替换掉所有 selector匹配到的元素 $("p").replaceWith("我是替换p标签的元素
");
$("我是替换p标签的元素
").replaceAll("p");
注意:如果p绑定有事件,替换后事件会丢失
wrap()
把所有匹配的元素用其他元素的结构化标记包裹起来wrapAll()
将所有匹配的元素用单个元素包裹起来wrapInner()
将每一个匹配的元素的子内容(包括文本节点)用一个HTML结构包裹起来 $("p").wrap(""); //将p用i标签包裹,就变成了增加了字体倾斜效果
$("div h").wrapAll(""); //将选择的元素最外面包裹一个i标签
$("p").wrapInner(""); //把所有段落内的每个子内容加粗
clone(even)
参数even的值
$(".des").clone(false);
children()
取得匹配元素的所有子元素组成的集合,该方法只考虑子元素而不考虑任何后代元素 $("body").children("input"); //等价于$(“body>input”)
$("body").children(); //等价于$(“body>*”)
$("div").next("input"); //等价于$("div+input")
$("div").next(); //等价于$(“div+*”)
$("div").prev("input")
$("div").prev()
$("div").siblings("input");
$("div") .siblings();
width()
设置宽度height()
设置高度 $("div").width(400); // width():设置宽度
$("div").height(400); // height():设置高度
console.log($("div").width()); // width():直接获取到的是数字,就只是width的值
console.log($("div").innerWidth()); //width+padding
console.log($("div").outerWidth()); //width+padding+border
console.log($("div").outerWidth(true)); //width+padding+border+margin
//获取页面可视区的宽度和高度
$(window).resize(function(){ //当调整浏览器窗口的大小时,发生 resize 事件
console.log($(window).width());
console.log($(window).height());
});
$(document).height(); //获取整个页面的文档高度,当页面文档小于可视区域的高度,$(document).height() = $(window.height())
$(document).width(); //获取整个页面文档的宽度
注意:当网页高度不足浏览器窗口时$(document).height()返回的是$(window).height()
offset()
获取元素相对于document(页面)的位置,其返回对象包含了两个属性top、left,该方法只对可见元素有效position()
获取元素相对于有定位的父元素的位置 var $dd=$("div").offset();
alert($dd.left);
alert($dd.top);
var $ee=$("div").position();
alert($ee.left);
alert($ee.top);
scrollTop()
和scrollLeft()
获取元素的滚动条距顶端的距离和距左侧的距离
<script>
$(function(){
$(window).scroll(function(){ //当滚动时触发scroll事件
//卷曲的高度
console.log($(window).scrollTop());
console.log($(window).scrollLeft());
});
});
</script>