写这篇笔记的目的主要是方便以后的复习和回顾(因为我记性真的很差),这些都是我看视频一点一点敲的小知识点,在此进行汇总,不足之处,还望谅解,可以评论区讨论。
体验jq
<style>
div{
height: 100px;
}
</style>
<script>
// 入口函数
$('document').ready(function(){
// 设置边框
$('#btn01').click(function(){
$('div').css('border','1px solid #bfa');
});
// 设置文本
$('#btn02').click(function(){
$('div').text('我是设置的文字');
});
});
</script>
<body>
<button id="btn01">边框</button>
<button id="btn02">文字</button>
<div></div>
<div></div>
<div></div>
</body>
体会和JavaScript不同的地方
jQuery的入口函数
<script>
//
//1.js的入口函数
window.onload = function(){
alert("window");
}
//2.jquery的入口函数
$(function(){
alert("jQ");
});
// $('document').ready(function(){
// alert("jQ");
// });
// 以上两种方法都可
</script>
-
jQuery入口函数和window. onload入口函数的区别.
- window. onload入口函数不能写多个,但是jQuery的入口函数是可以写多个的.
- 执行时机不同: jQuery入口函数要快于window . onload.
jQuery入口函数要等待页面上dom树加载完后执行.
window. onload要等待页面上所有的资源( dom树/外部css/js连接,图片)都加载完毕后执行.
-
如果报错:$ is not defined,就说明没有引入jQuery文件
-
jQuery文件结构:是一个自执行函数
(function(){…}()); -
jQuery文件是一个自执行函数,执行这个jQUERY文件中的代码,其实就是执行这个自执行函数.
$其实和jQuery是等价的,是一个函数,
text()
-
text():获取文本
- 获取文本:text()方法不需参数
- 获取标签为div的元素的文本
包含了多个dom元素的jQuery对象,通过text()方法获取取文本,会把所有dom元素的文本获取到.
alert($('div').text());
-
text()方法给了参数, 参数就是要设置的文本
-
给id为div1的这个标签设置文本
$('#div1').text("新设置的文本");
会覆盖他原来的内容,如果设置的文本中包含标签,是不会把这个标签给解析出来的.
javascript $('#div1').text("新设置的文本<a>假链接</a>");
-
修改标签为div的元素的文本
包含了多个dom元素的jQuery对象,通过text( )方法设置文本,会把所有的dom元素都设置上.
-
设置获取样式CSS()
-
获取样式: css()方法设置参数就是要获取值的样式名.
1. 获取id为div1元素的样式
jalert($('#div1').css('width'));//同理获取到颜色和边框
在这里插入代码片注意:在ie浏览器中,要获取边框这样的样式值,一定要记得给一个准确的边框.2.获取包含了多个dom元素的jQuery对象的样式,只能获取到第一个dom对象的样式.
console.log($('div').css('width'));
-
设置样式:css(样式名,样式值);设置或修改样式,操作的是style属性
1.设置单样式
$('#div1').css('width','300px'); $('#div1').css('height',300);
2.设置多样式
$('#div1').css({ width:300, height:'300px', backgroundColor:'#bfa', border:'1px solid pink' // background-color:yellowgreen });
选择器
- 配合使用odd、even和eq()
jQuery–选择器
鼠标移入事件
- 以后如果有鼠标移入事件,请使用mouseenter,而不是mouseover
- 鼠标离开事件使用mouseleave,不要使用mouseout
- 具体事件:
- jquery 事件文档
class操作
隐藏hide()和显示show()
-
show():显示被选的元素
- show方法本质上是更新display属性为block -
hide():隐藏被选的元素
- hide方法本质上是更新display属性为none -
toggle():对被选元素进行隐藏和显示的切换
-
显示show(参数1,参数2);
没有参数就没有动画效果(其他两种同理)参数1:代表执行动画的时长毫秒数, 也可以是代表时长的字符串 fast(200毫秒) normal(400) slow(600) 参数2:代表动画执行完毕后的回调函数. 注意:如果代表时长的单词写错了, 就相当于写了一个normal
滑动
- 滑下:slideDown(1,2)
- 滑上:sildeUp(1,2)
- 切换:slideToggle(1,2)
- 参数1:动画执行的时长
- 参数2:动画执行完毕后的回调函数
jQuery – 滑动
淡入淡出
- fadeIn() :淡入已隐藏的元素。
- fadeOut() :用于淡出可见元素
- fadeToggle() :用于在 fadeIn() 与 fadeOut() 方法之间进行切换
- fadeTo() :允许渐变为给定的不透明度(值介于 0 与 1 之间)
jQuery 效果 – 淡入淡出
自定义动画
- animate ({params}, speed, easing, callback) 四个参数
-
参数1:必选的对象代表的是需要做动画的属性 参数2:可选的代表执行动画的时长. 参数3:可选的,easing代表的是缓动还是匀速:linear(匀速) swing(缓动),默认不写是缓 参数4:动画执行完毕后的回调函数
- 既然参数四是一个函数,那就可以写任意的代码,即可以在这里让指定对象做动画
若要实现一直变化,就直接一直在函数中设置再设置
jQuery 效果 – 动画
停止动画
- stop:停止当前正在执行的动画
- clearQueue:是否清除动画队列( true false)
- jumpToEnd:是否跳转到当前动画的最终效果 (true false)
jQuery 停止动画
动态创建元素
<!--
1.html();
//设置或者获取内容的.
$( ' #btnHtm11' ).click(function () {
//1.1 获取内容: html()方法不给参数
//获取到元素的所有内容
// console.log($('#div1').html());
//1.2设置内容: html()方法给参数
会把原来的内容给覆盖
如果设置的内容中包含了标签,是会把标签给解析出来的.
$( ' #div1' ).html( '我是设置的内容<a href= "https://www. baidu.com">百度一下</a>');
});
2.$();|
确实能创建元素,但是创建的元素只存在于内存中,如果要在页面上显示,就要追加.
$( ' #btn1' ) .click(function () {
var $link = $('<a href="http://news . baidu. com/">我是新闻</a>' );
console .1og($link);
// 追加节点.
$( ' #div1' ) .append($link);
});
-->
添加节点
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script src="/jquery-1.12.4.js"></script>
<script>
$(function () {
// 1.append()
// 父元素.append(子元素); 作为最后一个子元素添加
$('#btnAppend').click(function () {
// // 1.1新创建一个li标签,添加ul1中
// var $liNew = $("<li>我是新创建的li标签</li>");
// $('#ul1').append($liNew);
// 1.2 把ul1中已经存在的li标签添加到ul中去
// 效果:剪切后作为最后一个子元素添加
// var $li3 = $('#li3');
// $('#ul1').append($li3);
// 1.3 把ul2中已经存在的li标签添加到ul1中去
// 效果:剪切后作为最后一个子元素添加
var $li32 = $('#li32');
$('#ul1').append($li32);
});
// 2.prepend()
//
$('#btnPrepend').click(function () {
// 2.1新建一个1i标签, 添加到u11中去
// var $liNew = $("<li>我是新创建的1i标签</1i>");
// $(' #ul1').prepend($liNew);
// 2.2把u11中已经存在的1i标签添加到u11中去.
// 效果:剪切后作为第一个子元素添加.
// var $li3 = $('#li3');
// $('#ul1').prepend($li3);
// 2.3 把ul2中已经存在的li标签添加到ul1中去
// 效果:剪切后作为第一个子元素添加.
var $li32 = $('#li32');
$('#ul1').prepend($li32);
});
// 3.after()
// 元素A. before(元素B);
//把元素B插入到元素A的后面,B作为兄弟元素添加
$('#btnPrepend').click(function () {
});
// 4.before()
// 元素A. before(元素B);
//把元素B插入到元素A的前面,B作为兄弟元素添加
$('#btnbefore').click(function () {
//新建一个div
var $divNew = $('<div>我是新建的div</div>');
$(' #ul1').before($divNew);
});
//5. appendTo();
//子元素. appendTo(父元素); //把子元素作为父元素的最后一个子元素添加.
$('#btnappendTo').click(function () {
//5.1新建一个1i标签,添加到u11中去.
var $liNew = $("<li>我是新创建的1i标签</1i>");
$liNew.appendTo($('#ul1'));
});
});
</script>
</head>
<body>
<input type="button" value="append" id="btnAppend">
<input type="button" value="prepend" id="btnPrepend">
<input type="button" value="after" id="btnafter">
<input type="button" value="before" id="btnbefore">
<input type="button" value="appendTo" id="btnappendTo">
<ul id="ul1">
<li>我是第1个li标签</li>
<li>我是第2个li标签</li>
<li id="li3">我是ul1中第3个li标签</li>
<li>我是第4个li标签</li>
<li>我是第5个li标签</li>
</ul>
<ul id="ul2">
<li>我是第1个li标签</li>
<li>我是第2个li标签</li>
<li id="li32">我是ul2中第3个li标签</li>
<li>我是第4个li标签</li>
<li>我是第5个li标签</li>
</ul>
</body>
</html>
删除
- jQuery remove() 方法删除被选元素及其子元素.
- jQuery empty() 方法删除被选元素的子元素.
jQuery 删除元素
操作属性
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script src="/jquery-1.12.4.js"></script>
<script>
$(function(){
// jQuery中操作属性 attr() removeAttr();
// 1.设置属性
$('#btn2').click(function(){
// 设置单属性
// $('img').attr('width',"100");
// $('img').attr('aaa','嘿嘿嘿'); //修改自定义属性
// $('img').attr('bbb','新加的'); //如果元素原来没有这个属性,就是添加属性
// 如果元素原来有这个属性,就是修改属性
// 设置多属性
$('img').attr({
width:'100',
aaa:'hhh',
bbb:'新加的'
});
});
// 2.获取属性
$('#btn1').click(function(){
alert($('img').attr('aaa'));//若没有要获得的属性,获取到的值就是undefined;且attr()设置的属性也可以获取
});
// 3.移除
$('#btn3').click(function(){
// $('img').removeAttr('alt');
// $('img').removeAttr('aaa');
// $('img').removeAttr('bbb');
// 多项移除
$('img').removeAttr('alt aaa bbb'); //移除多属性
});
});
</script>
</head>
<body>
<input type="button" value="获取属性" id="btn1" />
<input type="button" value="设置属性" id="btn2" />
<input type="button" value="移除属性" id="btn3" />
<br><br>
<img src="./images/1.jpg" alt="周五晚睡1" title= "周五晚睡" aaa='aaa' />
</body>
</html>
事件的注册和解绑
-
on()
-
-
off()
括号里不写,就是解绑所有事件;写了就是解绑指定事件
事件的触发
- trigger()