jQuery
11 jQuery
1.1 介绍
-
jQuery是一个轻量级的、兼容多浏览器的JavaScript库。
-
jQuery使用户能够更方便地处理HTML Document、Events、实现动画效果、方便地进行Ajax交互,能够极大地简化JavaScript编程。它的宗旨就是:“Write less, do more.“
// 下载链接:[jQuery官网](https://jquery.com/),首先需要下载这个jQuery的文件,然后在HTML文件中引入这个文件,就可以使用这个文件中帮我们提供的jquery的接口了。
# 中文文档 :http://jquery.cuishifeng.cn/
1.2 优势
-
一款轻量级的JS框架。jQuery核心js文件才几十kb,不会影响页面加载速度。
-
丰富的DOM选择器,jQuery的选择器用起来很方便,比如要找到某个DOM对象的相邻元素,JS可能要写好几行代码,而jQuery一行代码就搞定了,再比如要将一个表格的隔行变色,jQuery也是一行代码搞定。
-
链式表达式。jQuery的链式操作可以把多个操作写在一行代码里,更加简洁。
-
事件、样式、动画支持。jQuery还简化了js操作css的代码,并且代码的可读性也比js要强。
-
Ajax操作支持。jQuery简化了AJAX操作,后端只需返回一个JSON格式的字符串就能完成与前端的通信。
-
跨浏览器兼容。jQuery基本兼容了现在主流的浏览器,不用再为浏览器的兼容问题而伤透脑筋。
-
插件扩展开发。jQuery有着丰富的第三方的插件,例如:树形菜单、日期控件、图片切换插件、弹出窗口等等基本前端页面上的组件都有对应插件,并且用jQuery插件做出来的效果很炫,并且可以根据自己需要去改写和封装插件,简单实用。
2. jquery对象和dom对象
jquery找到的标签对象成为--jquery对象。
原生js找到的标签对象成为--dom对象。
dom对象只能使用dom对象的方法,不能使用jquery对象的方法
jquery对象也是,它不能使用dom对象的方法
dom对象和jquery对象互相转换:
jquery对象转换dom对象--jquery对象[0] 示例:$('#d1')[0]
dom对象转换jquery对象--$(dom对象)
3. jQuery选择器
jQuery('#d1') --$('#d1')
基本选择器(同css)
1 id选择器:
$("#id") # 不管找什么标签,用什么选择器,都必须要写$(""),引号里面再写选择器,通过jQuery找到的标签对象就是一个jQuery对象,用原生Js找到的标签对象叫做DOM对象。
2 标签选择器:
$("tagName") $('div')
3 class选择器:
$(".className")
配合使用:
$("div.c1") //找到有c1 class类的div标签
所有元素选择器:
$("*")
组合选择器:
$("#id,.className, tagName")
选择器找到的可能是多个标签,会放到数组里面,但还是jQuery对象,能够直接使用jquery的方法,意思是找到的所有标签进行统一设置,如果要单独设置选中的所有标签的某个标签,可以ton过索引去值的方式找到,然后注意,通过索引取值拿到的标签,是个dom对象。
层级选择器:
$('div p')
$('div.p')
$('div+p')
$('div>a')
$('div~a')
4. 基本选择器
<ul>
<li>蔡世楠</li>
<li>尤利阳</li>
<li id="l3">张磊</li>
<li>申凯琦</li>
<li id="l5">程德浩</li>
<li>罗新宇</li>
<li>曾凡星</li>
</ul>
:first --示例:$("li:first") // 第一个
:last //最后一个
:eq(index) // 索引等于index的那个元素
:even // 匹配所有索引值为偶数的元素,从0开始计数
:odd // 匹配所有索引为奇数的元素,从0开始计数
:gt(index) // 匹配所有大于给定索引值的元素
:lt(index) // 匹配所有小于给定索引值的元素
:not(元素选择器) //移除所有满足not条件的标签
:has(元素选择器) // $("li:has(.c1)") 找到后代中含有满足has里面选择器的那个标签
:not(:has(.c1)) -- $("li:not(:has(.c1))") // 排除后代中含有满足has里面选择器的那个标签
5 属性选择器
[attribute] // 属性名
[attribute=value] // 属性等于
[attribute!=value] // 属性不等于
// 示例,多用于input标签
<input type="text">
<input type="password">
<input type="checkbox">
$("input[type='checkbox']"); // 取到checkbox类型的input标签
$("input[type!='text']"); //取到类型不是text的input标签
6 表单筛选器
/ 找到的是type属性为这个值的input标签
:text
:password
:fild
:radio
:checkbox
:submit
:reset
:button
7 表单对象属性筛选器
:enabled # 可用的标签
:disabled #不可用的标签
:checked #选中的input标签
:selected # 选中的option标签
8 筛选器方法
/下一个:
$("#l3").next(); /找到下一个兄弟标签
$("#l3").nextall(); /找到下面所有的兄弟标签
$("#l3").nextUntil('l5'); /直到找到id值为l5的标签就结束查找,不包含它
# 上一个
$("#id").prev()
$("#id").prevall()
$("#id").prevUntil("#i2")
# 父亲元素
$("#id").parent()
$("#id").parent() //查找当前元素的所有的父辈元素(爷爷辈,祖先被都找到)
$("#id").parentsUntil('body') //查找当前元素的所有的父辈元素,直到遇到匹配的那个元素为止,这里直到body标签,不包含body标签,基本选择器都可以都可以放到这里面使用。
儿子和兄弟元素
$('ul').children();
$('ul').children('#i3'); # 找到符合后面这个选择器的儿子标签
$('#l5').siblings();
$('#l5').siblings('#l3'); # 找到符合后面这个选择器的兄弟标签
find
$("ul").find("#l3") --类似于 $("ul #l3"); # 找后代标签
filter过滤
$('li').filter('#l3');
.first() // 获取匹配的第一个元素
.last() // 获取匹配的最后一个元素
.not() // 从匹配元素的集合中删除与指定表达式匹配的元素 $('li').not('#l3');
.has() // 保留包含特定的元素,去掉那些不包含指定后代的元素。
.eq() // 索引值等于指定指定值的元素
9 标签操作
1 样式类操作
addClass(); //添加指定的css类名。
removeClass(); //移除指定的css类名。
hasClass(); //判断样式存不存。
toggleClass;//切换css类名,如果有就移除,如果没有就添加。
示例代码
$('.c1').addClass('c2');
$('.c1').removClass('c2');
$('.c1').hasClass('c2');
$('.c1').toggleClass('c2');
2 css样式
原生js
标签.style.color = 'red';
jquery
$('.c1').css('background-color','red');
同时设置多个css样式
$('.c1').css({'background-color':'yellow','width':'200px'})
3 位置操作
查看位置
$('.c2').position(); //查看相对位置
{top:20,left:20}
$('.c2').offset(); //查看距离窗口左上角的绝对位置
{top:28,left:28}
设置位置
$('.c2').offset({'top':'20','left':'40'});
10 jQuery绑定点击事件的写法
原生js绑定点击事件
$('.c1')[0].onclick = function(){
this.style.backgroundColor = 'green';
}
jquery绑定点击事件
$('.c1').click(function(){
$this.css('background-color','green');
})
$().on()支持直接在目标元素上绑定事件,也支持在目标元素的祖辈元素上委托绑定。在事件委托绑定模式下,即使是执行on()函数之后新添加的元素,只要它符合条件,绑定的事件处理函数也对其有效。
此外,该函数可以为同一元素、同一事件类型绑定多个事件处理函数。触发事件时,jQuery会按照绑定的先后顺序依次执行绑定的事件处理函数。
要删除通过on()绑定的事件,请使用off()函数。如果要附加一个事件,只执行一次,然后删除自己,请使用one()函数。
该函数属于jQuery对象(实例)。
-
点击事件和滚动事件的示例代码
