https://jquery.cuishifeng.cn/
jquery一个高效的,精简的且功能丰富的JavaScript工具库,满足了各种浏览器的兼容问题
web应用发展的过程中,jquery起到了不可或缺的推动作用
当下框架流行的时代,jquery不再那么适用
使用jquery感受,简单简洁,链式调用,读写一体
下载—— 引入、
下载
https://jquery.com/download/
引入
版本 1.x ie6+ ,2.X IE 9+ ,3.X IE10+
入口
写少的代码,做多的事情
免费 轻量级的js库,容量很小
兼容市面上的主流浏览器
注意jQuery不是将所有的js封装,只是有选择的封装
完善的Ajax应用,使Ajax变得简单
DOM操作简单化
丰富的插件支持,强大的易扩展性
// console.log(document.getElementById('box')) null
// window.onload = function () {
// console.log(document.getElementById('box'))
// }
// window.onload = function () {
// console.log(1)
// }
// console.log($('#box'))
// 为了防止文档结构还没有完全加载就运行jQusery代码
// $(document).ready(function () {
// // 写jquery代码
// })
// 简写
$(function () {
// 写jquery代码
console.log($('#box'))
})
$(function () {
// 写jquery代码
console.log(123)
})
// 以上两种写法 相当于js中的window.onload = function(){}
// 区别
/*
1:执行时机
window.onload必须再网页中所有的内容都加载完毕之后才可执行(包括图片img)
$(document).ready(function () {})页面当中的DOM结构绘制加载完毕即可执行,可能
与dom元素关联的并未完全加载完
2:编写个数
window.onload只能写一个
$(document).ready(function () {})可以编写多个 并且都会执行
3:简化写法
window.onload没有简化写法
( d o c u m e n t ) . r e a d y ( f u n c t i o n ( ) ) 可以简化为 (document).ready(function () {})可以简化为 (document).ready(function())可以简化为(function(){})
<div id="box">123</div>
<script>
// JavaScript通过js相关对象方法获取的对象
var box = document.getElementById('box')
// console.log(box)
// 通过jQuery包装后产生的对象 jQuery对象
// console.log($('#box'))
// 注意:jQuery对象无法应用Dom对象的任何方法,Dom对象无法应用jquery的任何方法
// jQuery对象和js对象可以相互转换
// var $c = $('#box')
// 第一种 转换为js对象
// var c = $c[0]
// console.log(c)
// 第二种 转换为js对象
// var c = $c.get(0)
// console.log(c)
// javascript对象转jQuery对象
var $cr = $(box)
console.log($cr)
</script>
val()
html()
width()
height()
text()
innerWidth()
attr()
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<script src="./js/jquery-3.6.0.min.js"></script>
<style>
.mytext {
width: 300px;
height: 200px;
padding: 50px;
border: 10px solid red;
}
.one {
color: red;
}
.two {
color: blue;
}
</style>
</head>
<body>
<div class="mytext">
jquery是js的工具库
<span>span标签</span>
</div>
<button id="btn">删除</button>
<div class="box"></div>
<a href="#">连接</a>
</body>
<script>
// 属性操作与获取
// console.log($('.mytext').text())
// console.log($('.mytext').html())
// // $('.box').text("超链接")
// $('.box').html("超链接")
// console.log($('.mytext').width())
// console.log($('.mytext').height())
// $('.mytext').width(100)
// $('.mytext').height(100)
// console.log($('.mytext').innerWidth()) //width +padding
// console.log($('.mytext').innerHeight()) //height +padding
// console.log($('.mytext').outerHeight()) //width +padding+border
// console.log($('.mytext').outerWidth()) //height +padding+border
console.log($('a').attr('href'))
$('a').attr('href', 'http://www.baidu.com')
</script>
</html>
$('.mytext').addClass('one')
$('.mytext').removeClass('one')
$('.mytext').toggleClass('two')
console.log($('.mytext').hasClass('two')) //true
// dom节点的操作
// 添加
// $('.mytext').append('我是h1标签
')
// $('.mytext').prepend('我是h1标签
')
// $('.mytext').before('我是h1标签
')
// $('.mytext').after('我是h1标签
')
$('#btn').click(function () {
// $('.mytext').remove()//当前dom全部删除
$('.mytext').empty() //清空子元素 当前dom还在
})
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<script src="./js/jquery-3.6.0.min.js"></script>
<style>
.box {
width: 300px;
height: 300px;
background-color: green;
}
</style>
</head>
<body>
<div class="box"></div>
<button id="btn">显示</button>
<button id="btn1">隐藏</button>
<button id="btn2">显示/隐藏</button>
<button id="btn3">滑入</button>
<button id="btn4">滑出</button>
<button id="btn5">滑入/滑出</button>
<button id="btn6">淡入</button>
<button id="btn7">淡出</button>
<button id="btn8">淡入/淡出</button>
</body>
<script>
/*
speed:三种预定速度之一的字符串("slow","normal", or "fast")或表示动画时长的毫秒数值(如:1000)
easing:(Optional) 用来指定切换效果,默认是"swing",可用参数"linear"
fn:在动画完成时执行的函数,每个元素执行一次。
*/
$('#btn').click(function () {
// $('.box').show()
// $('.box').show('slow')
// $('.box').show(3000)
$('.box').show(3000, function () {
alert('wo的动画执行完成')
})
})
$('#btn1').click(function () {
// $('.box').hide()
$('.box').hide(3000)
})
$('#btn2').click(function () {
$('.box').toggle(3000)
})
$('#btn3').click(function () {
$('.box').slideDown(3000, function () {
alert('wo的动画执行完成')
})
})
$('#btn4').click(function () {
$('.box').slideUp(3000)
})
$('#btn5').click(function () {
$('.box').slideToggle(3000)
})
$('#btn6').click(function () {
$('.box').fadeIn(3000, function () {
alert('wo的动画执行完成')
})
})
$('#btn7').click(function () {
$('.box').fadeOut(3000)
})
$('#btn8').click(function () {
$('.box').fadeTo(3000, 0.6)
})
</script>
</html>
// 遍历子孙节点 children find
// $('ul').children('.list1').addClass('one') //查找符合某种选择器的孩子节点 参数选填
// $('ul').find('.list5').addClass('one') //查找符合某种选择器的孩子节点 参数必填
// 遍历祖先节点 parent parents parentUntil
// $('span').parent().addClass('one')
// $('span').parents().addClass('one')
// 查找span的祖先元素 但是不包含body
// $('span').parentsUntil('body').addClass('one')
// 遍历同级节点 siiblings next nextUntil nextAll prev prevUntil prevAll
// $('.list').siblings().addClass('one')
// $('.list3').next().addClass('one')
// $('.list').nextAll().addClass('one')
// $('.list').nextUntil('.list5').addClass('one')
// $('.list3').prev().addClass('one')
// $('.list3').prevAll().addClass('one')
// 给.list3前面直到.list前的元素加上类 one
$('.list3').prevUntil('.list').addClass('one')
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script src="./js/jquery-3.6.0.min.js"></script>
<style>
*{
margin: 0;
padding: 0;
}
.comment{
font-size: 40px;
color: red;
}
.comment li{
float: left;
cursor: pointer;
}
ul{
list-style: none;
}
</style>
</head>
<body>
<ul class="comment">
<li>☆</li>
<li>☆</li>
<li>☆</li>
<li>☆</li>
<li>☆</li>
</ul>
<script>
$(function(){
var wjx_none='☆'
var wjx_sel='★'
//鼠标放上去当前的li和之前的所有的li的内容全部变为实心五角星 移开变成空心
$('.comment li').on('mouseenter',function(){
//$(this).text(wjx_sel).prevAll('li').text(wjx_sel)
//$(this).nextAll('li').text(wjx_none)
//end() 结束之后再使用,相当于重新一行再次使用this
$(this).text(wjx_sel).prevAll('li').text(wjx_sel).end().nextAll('li').text(wjx_none)
$('.comment li').on('mouseleave', function () {
// current用来记录离开时的星星
if ($('li.current').length === 0) {
$('.comment li').text(wjx_none)
} else {
$('li.current')
.text(wjx_sel)
.prevAll('li')
.text(wjx_sel)
.end()
.nextAll('li')
.text(wjx_none)
}
})
$('.comment li').on('click', function () {
$(this).attr('class', 'current').siblings('li').removeAttr('class')
})
})
})
</script>
</body>
</html>