jqueryAPI解析基础入门(全是干货)
什么是jQuery
是一个js库,封装好的特定的集合(方法和函数),内部都是通过原生js实现,优化了DOM的操作、事件处理、动画效果
使用jQuery
- $$是jQuery的别称,在代码中使用$和jQuery是相同的意思
- $$是jQuery的顶级对象,相当于原生JavaScript中的window。把元素利用$包装成jQuery对象,就可以调用jQuery的方法
DOM对象和jQuery对象的区别
- DOM对象:用原生js获取过来的对象就是DOM对象
- jquery对象:用jQuery方式获取过来的对象就是jQuery对象。本质:通过$把DOM元素进行包装
- jquery对象只能使用jQuery方式, DOM对象只能使用DOM的属性方式,两者不能混合使用
- DOM对象转化为jquery对象
// 通过原生获取video对象
var video = document.querySelector('video');
// 转换为jquery对象
$(video);
- jquery转换为DOM对象(两种方法都可以),这样就可以使用DOM方法了
$('div')[index] index就是索引
$('div').get(index) index是索引
jQuery常用的API
-
jQuery基础选择器 (里面选择器直接写css选择器即可,但是要加引号)
| 名称 | 用法 | 描述 |
|---|---|---|
| ID选择器 | $('#id') | 获取指定ID的元素 |
| 全选选择器 | $('*') | 匹配所有元素 |
| 类选择器 | $('.clas') | 获取同一类class元素 |
| 标签选择器 | $('div') | 获取同一类标签的所有元素 |
-
jQuery层级选择器
| 名称 | 用法 | 描述 |
|---|---|---|
| 子代选择器 | $('ul>li') | 使用>号,获取亲儿子层级的元素,并不会获取子孙层级的元素 |
| 后代选择器 | $('ul li') | 使用空格,获取后代选择器,获取ul下的所有li包括子孙 |
-
jQuery筛选选择器
| 语法 | 用法 | 描述 |
|---|---|---|
| :first | $('li:first') | 获取第一个li元素 |
| :last | $('li:last') | 获取最后一个li元素 |
| :eq(index) | $('li:eq(2)') | 获取到li元素中,选择索引号为2的元素,索引index从0开始 |
| :odd | $('li:odd') | 获取li元素中,选择索引号为基数的所有元素 |
| :even | $('li:even') | 获取li元素中,选择索引号为偶数的所有元素 |
-
jQuery筛选方法(重点)
| 语法 | 用法 | 说明 |
|---|---|---|
| parent() | $('li').parent() | 查找父级 |
| children(selector) | $('ul').children('li') | 相当于$('ul>li') ,查找最近一级(亲儿子) |
| find(selector) | $('ul').find('li') | 相当于$('ul li '),后代选择器 |
| siblings(selector) | $('.first').siblings('li') | 查找兄弟节点,不包括自己 |
| nextAll([expr]) | $('.first').nextAll() | 查找当前元素之后的所有同辈元素 |
| prevetAll([expr]) | $('.last').prevetAll() | 查找当前元素之前的所有同辈元素 |
| hasClass(class) | $('div').hasClass('protected') | 检查当前的元素是否含有某个特定的类,如果有返回true |
| eq(index) | $('li').eq(2) | 相当于$('li:eq(2)'),index从0开始 |
-
jquery中的隐式迭代,模拟点击button变色,不点击的不变色
<body>
<button>点击</button>
<button>点击</button>
<button>点击</button>
<button>点击</button>
<button>点击</button>
<button>点击</button>
</body>
<script>
$('button').click(function() {
$(this).css('backgroundColor','pink');
$(this).siblings('button').css('backgroundColor','');
})
</script>
-
jquery操作css样式
- 设置css样式方式
- 参数只写属性名,返回属性值
$(this).css('color');
- 参数是属性名,属性值,逗号分隔,是设置一组样式,属性必须加引号,值如果是数字可以不用引号和单位
$(this).css('color','red');
- 参数可以是对象形式,方便设置多组样式,属性名和属性值用冒号隔开,属性可以不用加引号
$(this).css({'color':'white','font-size':'20px' });
$('div').css({
width:400,
height:400,
backgroundColor:'red'
})
- 添加类的方式
语法: $('div').addClass('current');
- 删除类
语法: $('div').removeClass('current');
- 切换类
语法: $('div').toggleClass('current');
-
注意
jQuery中操作类,与原生js中className的区别
- 原生js中className会覆盖里面的类名
- jQuery里面的类操作知识对指定类进行操作,不影响原先的类名
-
js中的效果(动画效果)
- 显示与隐藏
show()
语法:show ([speed, [easing], [fn] ]);
- speed:显示速度,可设置为slow normal fast 或者数字 1000以毫秒为单位
- easing用来指定切换效果,默认swing,可设置linear
- fn回调函数,动画完成时执行,每个元素只执行一次
- 显示与隐藏、滑动效果、淡入淡出效果的语法基本上是一致的,这里就不多赘述了!
hide()
toggle():显示与隐藏的切换效果
- 滑动效果
slideDown()
slideUp()
slideToggle()下拉与上滑的切换效果
- 淡入淡出效果
fadeIn()
fadeOut()
fadeToggle()淡入淡出的切换效果
dadeTo()
- 自定义动画效果
animate()
<style>
div {
position: absolute;
width: 200px;
height: 200px;
background-color: pink;
}
</style>
<body>
<button>点我</button>
<div></div>
</body>
<script>
$('button').click(function() {
$('div').animate({
width:300,
height:300,
top:50,
left:400,
opacity:.5,
backgroundColor:'skyblue'
},500);
})
</script>
- 动画队列及停止排队的方法
- 动画队列:动画或者效果一旦触发就会执行,如果多次触发,就造成多个动画或者效果排队执行
- 停止排队
stop() 1. stop()方法哟关于停止动画或者效果 2. 注意:stop()写道动画或者效果前面,相当于停止结束上一次动画 $(this).children('ul').stop().slideToggle();
-
设置获取元素固有属性值prop()
- 获取属性语法
prop('属性')
- 设置属性语法
prop('属性','属性值')
- 设置获取元素自定义属性
- 获取属性语法
attr('属性') // 类似原生getAttribute()
- 设置属性语法
attr('属性','属性值')//类似原生setAttribute()
- jQuery获取内容文本值
- 普通元素内容html() (相当于innerHTML)
html() //获取元素的内容
html('内容')// 设置元素的内容
- 普通元素文本内容text()(相当于原生innerText)
-
jQuery的元素操作
1. 遍历
jQuery中有隐私迭代,当都设置同一个标签比较困难
语法1:
/*
$('div').each(function(index,ele) { } )
1. idnex是每个元素的索引,ele是每个DOM元素对象,不是jQuery对象
2. 要使用jquery方法,需要给这个dom元素转为jquery对象$(ele)
*/
<body>
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
</body>
<script>
var arr = ['red', 'pink', 'skyblue','green'];
$('div').each(function (index, ele) {
$(ele).css('color', arr[index])
})
语法2:
/*
$.each(object,function(index,ele) {})
可以遍历所有,包括对象
*/
<script>
var person = {
name:'zs',
age:18
}
$.each(person,function(index,ele) {
console.log(index);
console.log(ele);
})
</script>
2.创建
语法:
$('
')创建了一个li标签
3.添加
内部添加:
element.append('内容');放到后面
element.prepend('内容'); 放到前面
外部添加
element.after('内容') // 把内容放入目标元素后面
element.before('内容') // 把内容方到目标前面
注意
内部添加元素是:父子关系
外部添加元素是: 兄弟关系
4.删除
语法:
element.remove () // 删除本身
element.empty () // 删除指定元素集合中的所有子节点
element.html('') // 清空匹配元素的内容
演示
$('ul').remove(); 相当于自杀
$('ul').empty(); 删除子节点
$('ul').html(''); 删除子节点