什么是JQuery?
- JQuery是一个JavaScipt库,它通过封装原生的JavaScript函数得到一整套定义好的方法。
优点 ———— 便捷
- 像CSS一样访问和操作DOM
- 修改CSS控制页面外观
- 简化JavaScript代码
- 事件处理更加容易
- 让AJAX技术更加完美——异步加载
第一个JQuery代码
<script src="./jquery-3.5.1.js"></script>
<script type="text/javascript">
$('button').click(function(){
alert("你点了我一下哦");
});
alert($==jQuery); —————————— 返回true
</script>
JQuery
- 在JQuery中,$ ——— 就是JQuery中最重要且独有的对象
- $(function() { })———— 执行一个匿名函数
- $(‘# box’)———— 执行的id选择器
- $(’# box’).css(‘color’,‘red’)———— 执行功能函数
JQuery的代码模式是采用的连缀方式,可以不停的连续调用功能函数
<script src="./jquery-3.5.1.js"></script>
<script type="text/javascript">
var obj01 = $('#button');
var obj02 = jQuery('#button');
var obj03 = document.getElementById("button");
$('#button').css('background','red').css('font-size','20px')
</script>
JQuery加载模式
- JQuery使用 $ ( function ( ) { } ) 这段代码进项首位包裹
- ————因为我们JQuery库文件是在body元素之前加载的,必须等待所有的DOM元素加载后,延迟DOM操作,否则就无法获取到。
JQuery与DOM对象转化
<script src="./jquery-3.5.1.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
var j = $('#button01');
j.css('background','red').css('font-size','20px')
var obj = document.getElementById("button02");
obj.style.background = 'lawngreen';
var obj01 = j.get(0);
obj01.style.color = "white"
$(obj).css('font-size','45px')
</script>
JQuery元素选择器
选择器 | CSS | JQuery模式 | 描述 |
---|
标签选择器 | div{ } | $(‘div’) | 获取所有div元素的DOM对象 |
id选择器 | #box{ } | $(’#box’) | 获取一个id为box元素的DOM对象 |
类选择器 | .box{ } | $(’.box’) | 获取所有class为box元素的DOM对象 |
群组选择器 | span em box | $(‘span em box’) | 获取多个选择器的DOM对象 |
后代选择器 | ul li a { } | $('ul li a ') | 获取追溯到的多个DOM对象 |
通配选择器 | * { } | $(’*’) | 获取所有元素标签的DOM对象 |
<script src="./jquery-3.5.1.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
var obj = document.getElementById('button01')
obj.style.background = 'black'
obj.style.color = 'white'
var btnarr = document.getElementsByTagName('button')
for (var i = 0; i < btnarr.length; i++) {
btnarr[i].style.fontSize = '20px'
}
var obj02 = $('#button02')
obj02.css('background','red')
var btnarr02 = $('.button00')
btnarr02.each(function(index,ele){
if(index %3 == 0){
$(ele).css('font-size','35px')
}else{
$(ele).css('font-size','15px')
}
})
</script>
属性选择器
选择器 | JQuery模式 | 描述 |
---|
a [ tittle ] | $(’ a [ tittle ]’) | 获取具有这个属性的DOM对象 |
a [ tittle = t1 ] | $(’ a [ tittle = t1 ]’) | 获取具有这个属性等于这个属性值的DOM对象 |
过滤选择器
选择器 | JQuery模式 | 描述 |
---|
li:first | $(’ li:first’) | 获取第一个元素 |
li:last | $(’ li:last’) | 获取最后一个元素 |
li:eq(index) | $(’ li:eq(index)’) | 获取索引为index的DOM元素 |
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<div>
<a href="" id="aa">子1标签</a>
<a href="">子2标签</a>
<a href="" id="aa">子3标签</a>
<a href="" id="aa">子4标签</a>
<a href="" id="aa">子5标签</a>
<a href="" id="aa">子6标签</a>
<a href="" id="aa">子7标签</a>
<a href="" id="aa">子8标签</a>
</div>
<div id="d1">JQuery</div>
<ul>
<li>选项一</li>
<li>选项二</li>
<li>选项三</li>
</ul>
</body>
</html>
<script src="./jquery-3.5.1.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
$('a[href]').css('color','red')
$('a[id=aa]').css('font-size','30px')
$('li').eq(2).css('font-size','40px')
$('li').first().css('color','blue')
$('a').css('color',function(index,value){
if (index%2==0) {
return "red"
}else{
return "pink"
}
})
$('#d1').css({
'width': '100px',
'height': '100px',
'background': 'pink',
'border': '1px black solid'
})
</script>
HTML( ) 和TEXT ( )
方法名 | 描述 |
---|
HTML() | 获取元素中HTML内容 |
HTML(value) | 设置元素中HTML内容 |
TEXT() | 获取元素中文本内容 |
TEXT(value) | 设置元素中文本内容 |
<script src="./jquery-3.5.1.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
var h = document.getElementById("hhh")
h.innerText="Hello World";
h.innerText+=",欢迎来到我的世界!"
var ddd = document.createTextNode("Mary")
h.appendChild(ddd)
h.innerHTML="<span style='color:palevioletred'>WELCOME!</span>"
</script>
高级选择器
选择器 | CSS模式 | JQuery模式 | JQuery等价方法 | 描述 |
---|
后代选择器 | ul li a { } | $('ul li a ') | fin(‘p’) | 获取追溯到的多个DOM对象 |
子选择器 | div > p{ } | $(‘div > p’) | children( ) | 只获取子类节点的多个DOM对象 |
<script src="./jquery-3.5.1.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
$('div ul li').css('font-size','20px')
$('div').find('ul').find('li').css('color','red')
$('#dd02>h1').css('color',"pink")
$('#dd02').children('h2').css('background','yellow')
</script>
attr ( ) 和 romoveattr ( )
方法名 | 描述 |
---|
attr() | 获取元素key属性的属性值 |
attr(key,value) | 设置元素key属性的属性值 |
attr({key1:value1,key2:value2,…}) | 设置元素多个key属性的属性值 |
attr(key,function(index,value){}) | 元素key的属性值通过方法来设置 |
<script src="./jquery-3.5.1.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
var h = document.getElementsByTagName("h1")[0]
h.setAttribute("align","right")
var k = h.getAttributeNode("align")
k.value = "left"
h.removeAttributeNode(k);
JQuery代码
$('h1').attr('align','right')
</script>
css操作方法
方法名 | 描述 |
---|
addClass(class) | 给元素添加一个类 |
removeClass(class) | 移除元素的一个类 |
toggleClass(class1,class2,…) | 来回切换默认样式和指定样式 |
<html>
<head>
<meta charset="utf-8">
<title></title>
<style>
.d1 {
width: 200px;
height: 200px;
background: red;
}
.d2 {
width: 200px;
height: 200px;
background: yellow;
}
</style>
</head>
<body>
<div class="d1"></div>
<button type="button">点我切换颜色</button>
</body>
</html>
<script src="./jquery-3.5.1.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
$('div').attr('class','d2');
$('button').click(function(){
$('div').toggleClass('d2')
})
</script>
节点操作
内部插入结点
方法名 | 描述 |
---|
append(content) | 向元素后插入结点 |
appendTo(content) | 将指定元素移入到content元素内部的后面 |
prepend(content) | 向元素前插入结点 |
prependTo(content) | 将指定元素移入到content元素内部的前面 |
<html>
<head>
<meta charset="utf-8">
<title></title>
<style>
#ddd{
background-color: aquamarine;
width: 200px;
height: 200px;
}
</style>
</head>
<body>
<h1 id="h">我是h1</h1>
<h2 id="hh">我是h2</h2>
<h3 id="hhh">我是h3</h3>
<div id="ddd">
<span id="s">我是span文本</span>
</div>
</body>
</html>
<script src="./jquery-3.5.1.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
var sp = $("<span>我是新建节点span</span>")
$('body').append(sp)
sp.appendTo('body')
$('div').prepend($('#h'))
$('#hh').prependTo('#ddd')
$('#hhh').appendTo($('#ddd'))
</script>
外部插入结点
方法名 | 描述 |
---|
after(content) | 向元素外部后插入结点 |
before(content) | 向元素外部前插入结点 |
insertAfter(content) | 将指定元素移入到content元素外部的后面 |
insertBefore(content) | 将指定元素移入到content元素外部的前面 |
<script src="./jquery-3.5.1.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
$('h1').after($('h2'))
$('h3').before($('h1'))
$('span').insertAfter('div');
$('span').insertBefore('div');
</script>
包裹节点
方法名 | 描述 |
---|
wrap(html) | 向元素包裹一层html代码 |
wrapAll(html) | 用html将所有代码包裹在一起 |
unwrap(html) | 移除一层元素包裹的内容 |
wrapInner(element) | 向元素的子内容包裹一层DOM对象节点 |
<html>
<head>
<meta charset="utf-8">
<title></title>
<style>
#d{
background-color: aquamarine;
width: 200px;
height: 200px;
}
</style>
</head>
<body>
<div id="ddd">
<h1>我是h1</h1>
<h1>我是h1</h1>
</div>
</body>
</html>
<script src="./jquery-3.5.1.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
$('h1').wrap('<div id="d"></div>')
$('h1').wrapAll('<div id="d"></div>')
$('h1').unwrap();
$('h1').wrapInner('<div id="nei"></div>')
$('div').wrapInner('<div id="nei"></div>')
</script>
基础事件
方法名 | 描述 |
---|
.bind(‘click’,function ( ) { }) | 为元素绑定事件 |
.unbind() | 解绑所有事件 |
.unbind(‘click’) | 解绑指定事件 |
<script src="./jquery-3.5.1.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
$('#b1').bind('click',function(){
$('#b1').css('background','red')
})
$('#b2').bind('mouseover',function(){
$('#b2').css('background','blue')
}).bind('mouseout',function(){
$('#b2').css('background','black')
$('#b2').css('font-size','20px')
$('#b2').css('color','yellow')
}).bind('click',function(){
$('#b2').css('background','pink')
})
$('#b2').unbind()
$('#b2').unbind('click')
var a = function(){
alert('aaa')
}
var b = function(){
alert('bbb')
}
var c = function(){
alert('ccc')
}
$('#b3').bind('click',a).bind('click',b).bind('click',c)
$('#b3').unbind('click',a)
</script>
事件简写
方法名 | 描述 |
---|
.hover( function( ){ } ) | 为元素添加鼠标移入移出事件 |
.click( function( ){ } ) | 为元素添加点击事件 |
.mousedown( function( ){ } ) | 为元素添加鼠标摁下事件 |
.mouseup( function( ){ } ) | 为元素添加鼠标松开事件 |
.mouseout( function( ){ } ) | 为元素添加鼠标移出事件 |
.keydown( function( ){ } ) | 为元素添加键盘摁下事件 |
.keyup( function( ){ } ) | 为元素添加键盘松开事件 |
.keypress( function( ){ } ) | 为元素添加键盘摁下不松开事件 |
.on( ‘click’,function(){ } ) | 绑定某个事件 |
.off( ‘click’ ) | 解绑某个事件 |
.one( ‘click’,function(){ } ) | 使事件只触发一次 |
e.currentTarget | 获取的是绑定了该事件的那个元素 |
e.target | 获取的是触发了该事件的元素 |
<html>
<head>
<meta charset="utf-8">
<title></title>
<style type="text/css">
#d{
width: 200px;
height: 200px;
background-color: black;
}
#dd{
width: 200px;
height: 200px;
background-color: pink;
}
</style>
</head>
<body>
<div id="d"></div>
<div id="dd">
<button type="button">点击事件</button>
</div>
<button type="button" id="b1">自动触发事件</button>
<button type="button" id="b2">绑定事件</button>
</body>
</html>
<script src="./jquery-3.5.1.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
$('#d').mouseover(function(){
$('#d').css('background','blue')
}).mouseout(function(){
$('#d').css('background','red')
}).mousedown(function(){
$('#d').css('background','gray')
})
$('#d').hover(function(){
$('#d').css('background','blue')
},function(){
$('#d').css('background','red')
})
$('#dd').mousedown(function(e){
var obj = e.currentTarget
$(obj).css('background','yellow')
})
$('#b1').click(function(){
$('#b1').css('background','green')
alert("自动触发事件触发了")
}).trigger('click')
$('#b2').on('click',function(){
$('#b2').css('background','black')
$('#b2').css('color','yellow')
})
$('#b2').off('click')
$('#b2').one('click',function(){
alert("事件只能触发一次")
})
</script>
冒泡行为
方法名 | 描述 |
---|
e.stopPropagation() | 阻止事件冒泡 |
<html>
<head>
<meta charset="utf-8">
<title></title>
<style type="text/css">
#one {
width: 300px;
height: 300px;
background: #FFC0CB;
}
#two {
width: 200px;
height: 200px;
background: yellow;
}
#three {
width: 100px;
height: 100px;
background: blue;
}
</style>
</head>
<body>
<div id="one" onclick="show01(event)">
1
<div id="two" onclick="show02(event)">
2
<div id="three" onclick="show03(event)">
3
</div>
</div>
</div>
</body>
</html>
<script src="./jquery-3.5.1.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
function show01(e){
e.stopPropagation()
alert("点击了01")
}
function show02(e){
e.stopPropagation()
alert("点击了02")
}
function show03(e){
e.stopPropagation()
alert("点击了03")
}
</script>
冒泡行为
方法名 | 描述 |
---|
.show( 1000) | 显示元素 (毫秒) |
.hide(1000 ) | 隐藏元素(毫秒) |
.toggle(1000 ) | 显示隐藏切换(毫秒) |
.slideUp(1000) | 上拉元素隐藏 |
.slideDown(1000) | 下拉元素显示 |
.slideToggle(1000) | 上拉下拉切换 |
.fadeIn(1000) | 淡入元素显示 |
.fadeOut(1000) | 淡出元素隐藏 |
.fadeToggle(1000) | 淡入淡出切换 |
<html>
<head>
<meta charset="utf-8">
<title></title>
<style type="text/css">
div{
width: 200px;
height: 200px;
background-color: #FFC0CB;
}
</style>
</head>
<body>
<div id="d1"></div>
<button type="button" class="b1"> 显示</button>
<button type="button" class="b1"> 隐藏</button>
<button type="button" class="b1"> 切换01</button>
<div id="d2"></div>
<button type="button" class="b2"> 上拉</button>
<button type="button" class="b2"> 下拉</button>
<button type="button" class="b2"> 切换02</button>
<div id="d3"></div>
<button type="button" class="b3"> 淡入</button>
<button type="button" class="b3"> 淡出</button>
<button type="button" class="b3"> 切换03</button>
</body>
</html>
<script src="./jquery-3.5.1.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
$('.b1').eq(0).click(function(){
$('#d1').show(1500)
})
$('.b1').eq(1).click(function(){
$('#d1').hide(1500)
})
$('.b1').eq(2).click(function(){
$('#d1').toggle(1500)
})
$('.b2').eq(0).click(function(){
$('#d2').slideUp(1000)
})
$('.b2').eq(1).click(function(){
$('#d2').slideDown(1000)
})
$('.b2').eq(2).click(function(){
$('#d2').slideToggle(1000)
})
$('.b3').eq(0).click(function(){
$('#d3').fadeIn(1000)
})
$('.b3').eq(1).click(function(){
$('#d3').fadeOut(1000)
})
$('.b3').eq(2).click(function(){
$('#d3').fadeToggle(1000)
})
</script>