前端-JQuery
在我们学习过HTML,CSS,JavaScript之后,就可以完成网页的制作了,而JQuery只是一种轻量级的JavaScript库,可以让我们更方便的写JavaScript代码,用以完成我们的需求.
jQuery的优势在于:
- 文件非常小,不会影响页面的加载速度
- 选择器使用非常方便,比直接调用JavaScript要更方便
- 支持事务,样式和动画,可以把界面写的更加生动.
- 跨浏览器兼容,比JavaScript兼容的浏览器更多更广
- 插件的扩展,jQuery的第三方插件非常多,调用和修改都十分方便.
我们简略介绍以下jQuery的各方面内容,包括选择器,筛选器,样式和文本操作,属性操作,文档处理,事件等.
jQuery的对象
jQuery的对象就是通过jquer包装DOM后产生的一个对象,是jQuery独有的,并且可以和JavaScript的对象互相转换.
我们在定义jQuery对象的时候,要在变量名前面加上$
,包括后面在调用jQuery语句的时候,也可以直接用$
来表示jQuery对象的操作,比如
var $a = jQuery对象 # jQuery的基本语法为: $(selector).action()
另外,我们在定义jQuery之前一定要导入jQuery文件,可以用网络上的缓存文件,也可以用本地文件.
选择器
#id选择器 $("#id") #标签选择器 $("tagName") #class选择器 $(".className") #所有元素选择器 $("*") #组合选择器 $("#id,.className,tagName") #层级选择器 $("x y") x的所有后代y $("x > y") x的所有儿子y $("x + y") x的所有紧挨着的y(毗邻) $("x - y") x的所有兄弟y #属性选择器 #属性选择器主要用的是中括号,里面写判断条件 [attribute] [attribute=value]
筛选器
# 基本筛选器 :first 第一个标签 :last 最后一个标签 :eq() 索引等于括号内的那个元素 :even 匹配索引值为偶数的元素 :odd 匹配索引值为奇数的元素 :gt() 匹配所有大于括号内索引值的元素 :lt() 匹配所有小于括号内索引值的元素 :not(选择器) 移除所有满足not括号内条件的标签 :has(选择器) 选取所有满足has括号内条件的标签 # 表单筛选器 :text 明文 :password 密文 :file 文件名称 :redio 单选框 :checkbox 多选框 :submit 提交 :reset 重置 :button 按钮 # 表单对象的属性 :enabled :disabled :checked :selected 放在select表单内部的标签属性里,会默认选择这个带selected的标签用以显示 # 筛选器方法 $("#id").next() 下一个元素 $("#id").prev() 上一个元素 $("#id").parent() 父辈元素,当前父辈,仅一个 $("#id").parent() 父辈的所有元素 $("#id").children() 所有的儿子元素们 $("#id").siblings() 所有的兄弟元素们 $("#id").find() 查找与括号内相匹配的元素 $("#id").filter() 筛选出符合filter括号内的元素,然后过滤掉
样式操作
# 通常对类来进行操作 addClass(); 添加指定的类,括号内为类名 removeClass(); 移除指定的CSS类名,括号内为类名 hasClass(); 判断括号内样式是否存在,返回值为布尔值 toggleClass(); 如果已经有该类名,会移除,如果没有,会添加 # 查看元素尺寸 height() width() innerHeight() innerWidth() outerHeight() outerWidth()
位置操作
# 对元素的位置操作 offset() 括号内为空则获取元素在当前窗口的相对偏移,括号内不为空则设置元素位置 position() 获取匹配元素相对父元素的偏移 scrollTop() 获取匹配元素相对滚动条的顶部的偏移(如果有滚动条的话) scrollLeft() 获取匹配元素相对滚动条左侧的偏移(如果有滚动条的话)
文本操作
# 可以设置或者显示文件的html,text以及val html() 括号为空则取得第一个匹配元素的html内容,括号不为空则设置所有匹配元素的html内容 text() 括号为空则取得所有匹配元素的内容,括号不为空则设置所有匹配元素的内容 val() 括号为空则取得第一个匹配元素的当前值,括号不为空则设置所有匹配元素的值
属性操作
# 主要用于查询或者修改ID和一些自定义属性 attr(attrName) 返回第一个匹配元素的属性值 attr(attrName,attrValue) 为所有匹配到的元素设置一个属性值 attr(k1:v1,k2:v2) 为所有匹配元素设置多个属性值 removeAttr() 从每一个匹配的元素中删除一个属性 # 用于查询修改checkbox和radio等 prop() 获取属性 removeProp() 移除属性 attr和prop的区别在于,attr通常指的是HTML标签属性,而prop是DOM的对象属性. 所以总结下来 对于标签上能看到属性和自定义属性的标签,都用attr来操作. 对于返回布尔值的的标签,比如checkbox,radio和option等,都用prop
文档处理
$(A).append(B) 把B追加到A内部的最后面 $(A).prepend(B) 把B追加到A内部的最前面 $(A).after(B) 把B添加到元素A外部的后面 $(A).before(B) 把B添加到元素A外部的前面 $(A).remove() 从DOM中删除所有匹配到的元素 $(A).empty() 删除匹配的元素的所有子节点,不删除该元素 replaceWith() 替换单个元素 replaceAll() 替换所有元素
事件
jQuery中的事件和JavaScript中的事件十分相似,可以说除了写法基本是一样的.
常用事件
click(function(){}) click替代了JavaScript中的onclick和ondblclick等鼠标操作 hover(function(){}) 鼠标移动到该定义的元素上就会触发这个函数,移出去也会触发 blur(function(){}) 相当于onblur失去焦点 focus(function(){}) 相当于onfocus获得焦点 change(function(){}) 改变当前事件时候会触发函数 keydown(function(){}) 键盘按下的时候会触发 keyup(function(){}) 键盘抬起的时候会触发
事件绑定
.on(events[selector],function(){}) events: 事件 selector: 选择器 function: 时间处理的函数
移除事件
.off(events[selector],function(){}) events: 事件 selector: 选择器(可选) function: 时间处理的函数