一 jQuery DOM操作
1 jQuery元素属性操作
这里主要是两个方法
prop( ) 操作元素固有属性
prop( 属性名, 属性值) 设置<br /> prop( 属性名) 获取
attr( ) 操作元素自定义的属性
attr(属性名,属性值) 设置<br /> attr(属性名) 获取<br />prop更适用于表单属性, 如:disabled / checked / selected 等
<body><a href="http://www.baidu.com" title="百度一下">百度</a><input type="checkbox"> 选择<div index="1" data-index="2" >我是div</div> <!-- 自己加的属性 index="1" data-index="2" --><script>//prop 一般用于操作元素固有的属性console.log($('a').attr('href')); //一个参数就是获取console.log($('a').prop('href'));//attr一般用于操作给元素自定义的属性console.log($('div').attr('index'));console.log($('div').prop('index')); //获取不到index属性的值//将超链接跳转的路径改成中地的官网$('a').prop('href','https://www.mapgis.com/') //两个参数就是设置//将复选框默认选中$('input').prop('checked','checked')//将div中data-index的值改成10$('div').attr('data-index','10')</script></body>
2 jQuery文本操作
主要涉及三个方法
html( )
html() 获取<br /> html(内容) 设置
text( )
text() 获取<br /> text(内容) 设置
val( )
val() 获取<br /> val(内容) 设置<br />html相当于原生的innerHTML<br />text相当于原生的innerText<br />val相当于原生的value
语法
// 不带参数, 获取值$('选择器').html()// 带参数, 设置值$('选择器').html('值')
示例
<div><span>中国移动</span></div><input type="text" name="" id=""><script>//1,html():操作元素div标签体的内容console.log($('div').html());//一个参数是获取$('div').html('<h1>中国联通</h1>') //两个参数就是设置//2,text():操作元素div标签体的内容(纯文本)console.log($('div').text());$('div').text('<h1>中国联通</h1>')//没有样式,h1标签就变成了纯文本//3,val():操作input文本框的内容console.log($('input').val());$('input').val('王五')</script>
3 jQuery元素操作(操作节点)
1) 创建元素
$('字符串类型的元素')
//创建一个li元素var li = $('<li>中国联通</li>')console.log(li);
2) 添加元素
有4个方法
- append() - 在被选元素的内部插入子元素, 在最后
- prepend() - 在被选元素的内部插入子元素, 在最前
- after() - 在被选元素的外部插入兄弟元素, 在后面
before() - 在被选元素的外部插入兄弟元素, 在前面
<body><ul><li>中国移动</li></ul><div>我是div</div><script>//创建一个li元素var li = $('<li>中国联通</li>')console.log(li);//添加$('ul').append(li)//在子元素的后面添加//添加到子元素的前面var li1 = $('<li>中国电信</li>')$('ul').prepend(li1)</body>
3) 删除元素
如需删除元素和内容,一般可使用以下两个方法:
remove() - 删除被选元素(及其子元素)
empty() - 从被选元素中删除子元素
//删除$('div').remove()//可以直接用要删除的元素区调用
二 jQuery 效果
1 显示与隐藏
三个方法
show( ) 显示
- hide( ) 隐藏
- toggle( ) 切换
语法
// 不带参数, 直接显示$('选择器').show()// 带一个参数, 在time(毫秒)内显示$('选择器').show(time)// 带二个参数, 在time(毫秒)内显示, 显示完后执行回调$('选择器').show(time, callback)
示例
<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="https://cdn.jsdelivr.net/npm/jquery@3.6.0/dist/jquery.min.js"></script><style>div{width: 150px;height: 300px;background: pink;}</style></head><body><button>显示</button><button>隐藏</button><button>切换</button><div></div><script>//show可以不带参数,没有动画效果//可以带一个参数,动画执行的时间//后面还可以跟一个匿名函数(回调函数),可以在动画完成之后执行//显示$('button').eq(0).click(function(){$('div').show(500,function(){alert(1)})})//隐藏$('button').eq(1).click(function(){$('div').hide(500)})//切换$('button').eq(2).click(function(){$('div').toggle(500)})</script></body>
2 滑入滑出
三个方法
- slideDown( ) 下拉滑动
- slideUp( ) 上拉滑动
- slideToggle( ) 切换
语法跟show()一样
<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="https://cdn.jsdelivr.net/npm/jquery@3.6.0/dist/jquery.min.js"></script><style>div{width: 150px;height: 300px;background: pink;}</style></head><body><button>下拉滑动</button><button>上拉滑动</button><button>切换</button><div></div><script>//slideDown可以不带参数,没有动画效果//可以带一个参数,动画执行的时间//后面还可以跟一个匿名函数(回调函数),可以在动画完成之后执行//显示$('button').eq(0).click(function(){$('div').slideDown(1000,function(){alert(111)})})//上拉滑动$('button').eq(1).click(function(){$('div').slideUp(1000)})//切换$('button').eq(2).click(function(){$('div').toggle(500)})</script></body>
3 淡入淡出
四个方法
- fadeIn( ) 淡入
- fadeOut( ) 淡出
- fadeToggle( ) 切换
fadeTo( ) 透明度
<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="https://cdn.jsdelivr.net/npm/jquery@3.6.0/dist/jquery.min.js"></script><style>div{width: 150px;height: 300px;background: pink;display: none;}</style></head><body><button>淡入</button><button>淡出</button><button>切换</button><button>修改透明度</button><div></div><script>//淡入$('button').eq(0).click(function(){$('div').fadeIn(1000)})//淡出$('button').eq(1).click(function(){$('div').fadeOut(1000)})//切换$('button').eq(2).click(function(){$('div').fadeToggle(1000)})//透明度$('button').eq(3).click(function(){$('div').fadeTo(1000,0.5)//速度和透明度必须要写!!! 第一个参数是透明度变化的速度})</script></body>
4 停止动画
stop( )
如果不停止动画就会出现存在时间上的延迟(需要前面动画执行玩才能继续执行后面的动画), 可以使用stop停止动画
注意: stop一定要加在动画的前面,表示要先停止之前的正在执行到动画,然后再开始现在的动画<script>$(function() {$('.wrap li').hover(function(){//鼠标进入的时候,其他的li标签透明度:0.5$(this).siblings().stop().fadeTo(500,0.5)},function(){// 鼠标离开,其他li 透明度改为 1$(this).siblings().stop().fadeTo(500,1)})});</script>
三 jQuery 遍历
each( )
<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="https://cdn.jsdelivr.net/npm/jquery@3.6.0/dist/jquery.min.js"></script></head><body><div>1</div><!-- red --><div>2</div><!-- green --><div>3</div><!-- purple --><script>//$('div').css('color','red')//如果需要针对同一类的元素做不同的操作,就需要用到遍历元素//最简单的遍历$('div').each(function(){console.log(this);//this就代表里面的每一个dom对象})//完整的遍历方式$('div').each(function(i,e){//这两个参数名字随便起,但是第一个永远代表索引,第二个永远代表元素console.log(i,e);})//完成需求var arr = ['red','green','purple']$('div').each(function(i,e){//拿到每一个div设置样式$(e).css('color',arr[i])})</script></body>
$.each( )
<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"><script src="https://cdn.jsdelivr.net/npm/jquery@3.6.0/dist/jquery.min.js"></script><title>Document</title></head><body><div>1</div><div>2</div><div>3</div><script>//$.each(要遍历的对象,回调函数)$.each($('div'),function(i,e){console.log(i,e);})</script></body>
字面量对象遍历
<script>//$.each可以直接遍历字面量对象,i代表属性名,e代表属性值$.each({name:'张三',age:23},function(i,e){console.log(i);//属性名 name ageconsole.log(e);//属性值 张三 23})</script></body>
四 事件
绑定 on
在选择元素上绑定一个或多个事件的事件处理函数。
可以绑定1个或者多个事件处理程序
可以实现动态绑定<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="https://cdn.jsdelivr.net/npm/jquery@3.6.0/dist/jquery.min.js"></script><style>div{width: 100px;height: 100px;background: pink;}</style></head><body><div></div><ul><p>111</p><p>222</p><p>333</p></ul><script>//1,之前注册事件方式: 一次只能添加一个事件/* $('div').click(function(){$(this).css('background','red')})$('div').mouseenter(function(){//鼠标指针穿过事件$(this).css('background','purple')}) *///2,on:一次可以添加若干个事件$('div').on({click : function(){$(this).css('background','red')},mouseenter :function(){$(this).css('background','purple')}})//3.on可以实现动态绑定//这个传统的绑定方式只能对于已经存在的元素进行绑定事件,如果这个p标签是动态生成的,那就没办法实现/* $('ul p').click(function(){alert($(this).text())}) */$('ul').on('click','p',function(){//一定要注意,调用的对象是p的父元素 第二个参数传选择器,将来就会选择ul下面的p元素alert($(this).text())})</script></body>
解绑 off
在选择元素上移除一个或多个事件的事件处理函数。
<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="https://cdn.jsdelivr.net/npm/jquery@3.6.0/dist/jquery.min.js"></script><style>div{width: 100px;height: 100px;background: pink;}</style></head><body><div></div><script>//on:一次可以添加若干个事件$('div').on({click : function(){$(this).css('background','red')},mouseenter :function(){$(this).css('background','purple')}})//off//$('div').off() //解除div上的所有事件$('div').off('click') //解除div上的点击事件</script></body>
