1>引子
jQuery官网介绍:write less,do more
uery是javascript的一个库,包含多个可重用的函数,用来辅助我们简化javascript开发。
2>先看下引入jQuery
<!--可以引入百度的jQuery库-->
<script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
<!--或者从官网下载jQuery库到本地,以文件路径方式-->
<script src="./jquery-3.3.1.min.js"></script>
//jquery是js的一个库文件,既然是库文件,那么就会抛出来一个构造函数或者对象
//$(document).ready()是DOM结构绘制完毕后就执行,不必等到加载完毕
//书写jquery的方式 入口函数
$(document).ready(function(){
alert(111)
});
//等价
$(function(){
alert(222);
});
补充一点之前,js脚本为什么要写在window.onload下面
所以, 以后写jQuery都写在 $(function(){XXXXXX})就行了,这就是入口函数,DOM结构绘制完毕后就执行。
3>再看下它是如何简化js开发的
一个简单的例子,页面一个按钮btn 控制div展示,js写法如下
window.onload = function(){
var btn1 = document.getElementsByTagName('button')[0];
var div = document.getElementsByTagName('div');
btn1.onclick = function(){
for(i=0; i<div.length; i++){
div[i].style.display = 'block';
div[i].innerHTML = '展示了'
}
}
};
如上,需要找到对应的btn和div DOM对象,再于btn对象上增加onclick方法,再写循环,改变div的属性等,相当繁琐。
引入jQuery之后,写法如下:
<script src="./jquery-3.3.1.min.js"></script>
$(function(){
$('#btn').click(function(){
$('div').css('display','block');
$('div').html('div展示了')
})
})
直接定位到相应的元素,增加事件函数或者增改样式属性。
4>jQuery的选择器,也就是定位元素的方法,其实跟css绝大相同
4.1>id选择器,#ID值
4.2>标签选择器,标签值,
//设置多个值 设置多个值得时候使用对象存储 key:value
$('a').css({'color':'yellow','font-size':'24px'});
如上,当要设置多个样式时,用对象存储,key:value
4.3>class选择器,.类值
$('.li3').css('background','green');
4.4>通配符选择器
console.log($('*'));
//清空整个界面的dom元素
$('*').html('');
5>jQuery层级选择器
//1.后代选择器 div p
$('#box p').css('color','red');
//2.子代选择器 div > p
$('#box>p').css('color','yellow');
//3.毗邻选择器 匹配素所有紧接着选中元素的兄弟 +
$('#father+p').css('font-size','30px');
//4.兄弟选择器 ~
$('#father~p').css('background','blueviolet');
//5.获取第一个元素
$('li:first').css('font-size','50px');
//6.获取最后一个元素
$('li:last').css('font-size','50px');
//7.获取指定索引值的那一个元素
$('li:eq(3)').css('font-size','50px');
6>jQuery过滤选择器
$('li:odd').css('color','red');
//索引为奇数的元素
$('li:even').css('color','yellow');
//选中索引值为1的元素 *(通过索引定位,很常用)
$('li:eq(1)').css('font-size','100px');
//大于索引值1
$('li:gt(1)').css('font-size','50px');
//小于索引值1
$('li:lt(1)').css('font-size','12px');
7>jQuery属性选择器
// 标签名[属性名] 查找所有含有id属性的该标签名的元素
$('li[id]').css('color','red');
// 匹配所有class属性等于box的元素
$('li[class=box]').css('font-size','30px');
// [attr!=value] 匹配所有不含有指定的属性,或者属性不等于特定值的元素
// 这里是匹配所有不包含class属性 和 class属性不等于box的元素
$('li[class!=box]').css('font-size','50px');
// ^匹配给定的属性是以某些值开始的元素
$('input[name^=user]').css('background','gray');
// $匹配给定的属性是以某些值结尾的元素
$('input[name$=222]').css('background','greenyellow');
// *匹配给定的属性是包含某些值的元素
$('button[class*=btn]').css('background','red');
8>jQuery筛选选择器
//获取第n个元素 数值从0开始
$('span').eq(1).css('color','#FF0000');
//获取第一个元素 :first ,最后一个元素:last
$('span').first().css('color','greenyellow');
$('span').last().css('color','greenyellow');
//.parent() 选择父级元素
$('span').parent('.p1').css({"width":'30px',height:'40px',"background":'red'});
//.siblings()选择所有的兄弟元素
$('.list').siblings('li').css('color','red');
//.find() 查找所有的后代元素
$('div').find('button').css('background','yellow');