jQuery

jQuery

1.简介

jQuery是一个封装的库,也可以成为一个框架,将js中复杂的方法进行封装改良,让开发人员更加专注于逻辑开发。

jQuery使用时必须进行引入:

  1. 引入本地js文件
  2. CDN加载(引入在线的网址,网址上具有框架)https://www.jq22.com/cdn/
<script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>

jQuery特点:不用考虑兼容问题,已经被封装好了,但是仅封装了DOM的操作

文档:https://jquery.cuishifeng.cn/index.html

2.选择器

2.1基本筛选

$('#box').css('color','green')

$('ul li:first').css('color','red')

$('ul li:last').css('color','red')

//小于指定下标 lt(index) index从0开始
$('ul li:lt(3)').css('border','1px solid blue')

//大于
$('ul li:gt(4)').css('border','1px solid green')

//even匹配所有的偶数行,从0开始
$('ul li:even').css('background','pink')

//匹配基数行,从0开始
$('ul li:odd').css('background','orange')

//eq(index) 找到指定的某一个元素
$('ul li:eq(2)').css('background','red')

//$('ul li:not(2)').css('background','yellow')
//选择所有的标题标签 :header

2.2属性选择器

$('input[type="text"]').css('border','1px solid red')

$('input[name!="hu"]').css('border','1px solid purple')
//匹配以..开头的
$('input[name^="hu"]').css('border','1px solid green')
//匹配以..结尾的
$('input[name$="ao"]').css('border','3px solid black')

//包含
$('input[name*="u"]').css('border','3px solid skyblue')

3.属性

attr()
removeAttr()
prop()

addClass()
removeClass()
toggleClass()

html()
text()
val()

3.1属性

.active{
    color: gold;
}
.active2{
    background-color: #008000;
}
<p name='txt' >不动鸣神泡影断灭</p>
//attr()获取,设置,修改属性
console.log($('p').attr('name'))//txt

$('p').attr('class','active')

$('p').attr('name','cents')
console.log($('p').attr('name'))//cents

// removeAttr()移除
// setTimeout(function(){
// 	$('p').removeAttr('class')
// },1000)

//prop匹配第一个
//console.log($('p').prop('class'))
console.log($('p').prop({class:'active2'}))

//移除不了
setTimeout(function(){
    $('p').removeProp('class','active2')
},1000)

image-20210830130037253

3.2css类

color: greenyellow;
}
p.active{
color: gold;
}
<button type="button">点击切换</button>
<p>不动鸣神泡影断灭</p>
$('button').click(function(){
    console.log($('p').hasClass('active'))
    //var res=$('p').hasClass('active')
    // if(res){
    // 	$('p').removeClass('active')
    // }
    // else{
    // 	$('p').addClass('active')
    // }

    //上述代码和下面代码一样
    $('p').toggleClass('active')

3.3html

<div>
    <p>不动鸣神泡影断灭</p>
</div>
//html() 相当于 innerHTML
var txt=$('div').html()
console.log(txt)//<p>不动鸣神泡影断灭</p>	

var txt=$('div').text()
console.log(txt)//不动鸣神泡影断灭


var txt=$('div').text('胡桃胡桃')

//val()获取输入框和文本框的值

//原生js
// var input=document.querySelector('input')
// input.οnblur=function(){
// 	console.log(input.value)
// }

//jq
$('input').blur(function(){
    console.log($('input').val())
})

image-20210830130821457

image-20210830130832863

4.CSS

css()

offset()
position()
scrollTop()
scrollLeft()

width()
height()
...

4.1css

xx.css('color','red') or xx.css({color:'red',width:100+'px'})

4.2位置

//offset()获取相对于视口的偏移,返回一个对象
console.log($('div').offset())//{top: 50, left: 108}

//position()相对父元素的偏移,要写定位
console.log($('.box').position())//{top: 50, left: 108}

console.log($('.box2').position())//{top: 50, left: 108}


$(document).scroll(function(){
    var val=$(document).scrollTop()
    console.log(val)

    var val=$(document).scrollLeft()
    console.log(val)

})

4.3尺寸

console.log($('div').width())
console.log($('div').height())

5.筛选

<ul>
    <li>1111111111</li>
    <li>1111111111</li>
    <li>1111111111</li>
    <li>1111111111</li>
</ul>
//end回到上一个破坏性操作
$('ul li').first().css({background:'red'}).end().last().css({background:'green'})
$('ul li').first().css({color:'gold'}).parent().find('li').last().css({color:'blue'})

image-20210830125714444

6.效果

1基本

show()
hide()
toggle()
.box{
    width: 200px;
    height: 200px;
    background: orange;
}
<button type="button">show</button>
<button type="button">hide</button>
<button type="button">toggle</button>
<div class="box"></div>
$(function(){
    //显示
    $('button').eq(0).click(function(){
        $('.box').show()
    })
    //隐藏
    $('button').eq(1).click(function(){
        $('.box').hide()
    })
    //切换
    $('button').eq(2).click(function(){
      		/*
			参数:
			speed:slow normal fast
			$('.box').toggle('slow')
			
			$('.box').toggle('1000')
			
			$('.box').toggle('1000',function(){
				console.log('动画完成')
			})
		*/
        $('.box').toggle('1000',function(){
            console.log('动画完成')
        })
    })
})

效果演示:

2滑动

slideDown():高度增加【!】
slideUp():高度收缩
slideToggle():切换
.box{
    width: 200px;
    height: 200px;
    background: orange;
}
<button type="button">sildeDown</button>
<button type="button">slideUp</button>
<button type="button">toggle</button>
<div class="box"></div>
$(function(){

    //显示
    $('button').eq(0).click(function(){
        $('.box').slideDown()
    })
    //隐藏
    $('button').eq(1).click(function(){
        $('.box').slideUp()
    })
    //切换
    $('button').eq(2).click(function(){
      	/*
		参数:
		speed:slow normal fast
		$('.box').slideToggle('slow')
		
		$('.box').slideToggle('1000')
		
		$('.box').slideToggle('1000',function(){
			console.log('动画完成')
		})
	*/
        $('.box').slideToggle('1000',function(){
            console.log('动画完成')
        })
    })
})

3淡入淡出

fadeIn()
fadeOut()
fadeTo()
fadeToggle()
.box{
    width: 200px;
    height: 200px;
    background: orange;
}
<button type="button">fadeIn</button>
<button type="button">fadeOut</button>
<button type="button">fadeTo</button>
<button type="button">fadeToggle</button>
<div class="box"></div>
$(function(){

    //淡入
    $('button').eq(0).click(function(){
        $('.box').fadeIn()
    })
    //淡出
    $('button').eq(1).click(function(){
        $('.box').fadeOut()
    })
    //调整不透明度,参数opacity
    $('button').eq(2).click(function(){

        $('.box').fadeTo('1000',0.1,function(){
            console.log('动画完成')
        })
    })//切换
    $('button').eq(3).click(function(){

        $('.box').fadeToggle('1000',function(){
            console.log('动画完成')
        })
    })
})

4自义定

animate()
stop()
delay()
finish()

animate()

.box{
    width: 200px;
    height: 200px;
    background: orange;
    position: absolute;
    left: 0;
    top: 30px;
}
<button type="button">开始动画</button>
<button type="button">结束</button>
<button type="button">finish</button>
<div class="box"></div>
$(function(){
    $('button').eq(0).click(function(){
        //animate(params,speed,)
        // $('.box').animate({opacity:'0.5',borderRadius:'50%',left:'300px'},1000)
        // $('.box').animate({opacity:'0.5',borderRadius:'50%'},1000).animate({left:'300px'},500)
        //设置延迟
        $('.box').animate({opacity:'0.5',borderRadius:'50%'},1000).delay(1000).animate({left:'300px'},500)
    })

效果演示:

stop()

  • stop() == stop(false,false) 停止当前正在执行的动画,立即执行下一个动画
  • stop(false,true) 立即完成当前动画,并立即执行下一个动画
  • stop(true) == stop(true,false) 立即停止当前动画,取消下一个动画
  • stop(true,true) 立即完成当前动画,取消下一个动画

第一个参数为false:则为立即执行下一个动画,true则为立即取消下一个动画
第二个参数为false:则为立即结束当前正在执行的动画,true则为立即完成当前执行的动画

$('button').eq(1).click(function(){


    // $('.box').stop()

     $('.box').stop(false,true)//立即完成当前动画,并立即执行下一个动画

   // $('.box').stop(true,true)
})

效果演示:

finish()

清空所有动画,直接到完成后的动画位置

$('button').eq(2).click(function(){
    $('.box').finish()//清空所有动画,直接到完成后的动画位置
})

7.文档处理

7.1内部插入

append()
appendTo()
prenpend()
prependTo()
<div><h1>attention</h1></div>

<ul></ul>
<li>韶光抚月,天下人间</li>
<li>韶光抚月,天下人间</li>
<li>韶光抚月,天下人间</li>
<li>韶光抚月,天下人间</li>
<li>韶光抚月,天下人间</li>
//append()在内部后面追加内容
$('ul li').append(',2.1前瞻今晚九点直播')

//appendTo(将所有匹配到的元素追加到指定的集合中)
$('li').appendTo($('ul'))

//prepend()在内部内容的前面追加
$('li').prepend('原神--')

//prependTo()所有匹配到的元素前置到指定集合中
$('li').prependTo($('div'))

image-20210830103110464

7.2外部插入

after()
before()
insertAfter()
insertBefore()
<div><h1>重大消息</h1></div>
<ul>
    <li>223233231131321</li>
    <li>223233231131321</li>
    <li>223233231131321</li>
    <li>223233231131321</li>
</ul>
$('ul li').after('<input/>')

image-20210830104022735

$('ul li').before('<input/>')

image-20210830104109162

$('ul').insertAfter('div')

image-20210830104529308

$('ul').insertBefore('div')

image-20210830104558690

7.3包裹

wrap()
unwrap()
wrapAll()
wrapInner()
<li>123135656</li>
<li>123135656</li>
<li>123135656</li>
<li>123135656</li>

//wrap()给每个都包裹上
$('li').wrap('<ul></ul>')

//unwrap()脱掉
$('li').unwrap()

//匹配到的统一加上
$('li').wrapAll('<ul></ul>')

//给内部添加
$('li').wrapInner('<a></a>')

image-20210830104813397

7.4替换

replaceWith()
replaceAll()
<p>31213</p>
<p>31213</p>
<p>31213</p>
$('p').replaceWith('<h2>3333333</h2>')
					
$('<h3>9999999</h3>').replaceAll('h2')

image-20210830105301146

7.4删除和克隆

empty()
remove()
detach()

clone()
<p>31213</p>
<p>31213</p>
<p>31213</p>

<div>clone</div>
//清空匹配的元素内的内容
//$('p').empty()

//移除匹配的元素
//$('p').remove()

//从DOM中删除所有匹配的元素
$('p').detach()

$('div').clone().appendTo('body')

8.事件

on()
off()

hover()
<button type="button">btn</button>

<p>胡桃</p>
//on()绑定一个或多个事件
$('button').on('click mouseover',lis1)

function lis1(){
    console.log(111)
}

//off取消事件
setTimeout(function(){
    $('button').off('mouseover',lis1)
},2000)


$('p').hover(
    //移入
    function(){
        $('p').css({color:'gold'})
    },
    //移出
    function(){
        $('p').css({color:'black'})
    })

9.核心

//each()
$('ul li').each(function(index,value){
    console.log(index,value)
})

//length()获取长度
console.log($('ul li').length)

//get()获取指定下标的元素,返回DOM元素
$('ul li').eq(0).css({color:'gold'})

//jQuery对象转换为js的DOM对象
$('ul li').get(1).style.color="red"

//js的DOM对象转换为jQuery对象
var li=document.querySelectorAll('ul li')
var $li=$('li').eq(2)
$li.css({color:'blue'})

10.补充

//css()获取或者设置css样式
console.log($('div').css('width'))//300px

//设置css ,单个样式
$('div').css('width','200px').css('background','lightblue')

//同时设置多个css样式
$('div').css({height:'200px',background:'orange',borderRadius:'50%'})

//链式操作 ,方便切换对象
$('ul li').css({width:'300px',background:'#ccc',margin:'1px 0px'}).first().css('color','red')

$('ul li').eq(2).css({background:'pink'})

//判断是否具有某个属性,返回一个布尔值
var res =$('ul li').hasClass('active')
console.log(res)


//is适用性更强
var res =$('ul li').is('.active')
console.log(res)

//map遍历
$('ul li').map(function(){
    var value=$(this).html()
    console.log(value)
})

//循环点击事件
$('ul li').click(function(){
    console.log($(this).html())
})

//children()查找指定的子元素
$('div').children('p').css('color','red')

//find()查找到指定元素,包含关系
$('div').find('p').css('color','purple')

//next()相当于 nextSibling
// $('ul li:first').next().css('color','red')
// $('ul li:first').nextUntil('.active').css('color','pink')


$('ul li:last').prev().css('color','red')
$('ul li:last').prevUntil('.active2').css('color','pink')


//siblings()查找所有的兄弟

$('ul li.active').siblings().css({border:'2px solid orange'})
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值