我的jQuery学习总结
一、选择器
1. 基本选择器
| #id | 通过元素的id属性来匹配元素 | 
| element | 通过的元素的名称来匹配元素 | 
| selector1,selector2 | 群组选择器,多个条件之间是通过逗号隔开的 | 
| .class | 通过元素的class属性来匹配元素 | 
2. 层级选择器
| ancetor descendant | 匹配祖先元素下的所有后代元素 | 
| parent > child | 匹配父元素下的所有子元素 | 
| prev + next | 匹配上一个元素紧邻的下一个同级元素 | 
| prev ~ siblings | 匹配上一个元素下面的所有同级元素 | 
3. 简单选择器
| :first | 匹配第一个元素 | 
| :last | 匹配最后一个元素 | 
| :even | 匹配所有的偶数 | 
| :odd | 匹配所有的奇数 | 
| :eq(index) | 匹配索引等于index的元素,默认索引从0开始 | 
| :gt(index) | 匹配大于index的元素 | 
| :lt(index) | 匹配小于index的元素 | 
| :not(selector) | 匹配除selector选择器以外的其他元素 | 
4. 内容选择器
| :contains(text) | 匹配内容包含text的元素 | 
| :empty | 匹配内容为空的元素 | 
| :has(selector) | 匹配具有指定选择器的元素(和not(selector)正好相反) | 
| :parent | 匹配具有子元素的元素(匹配内容不为空的元素) | 
5. 可见性选择器
| :hidden | 匹配所有隐藏元素,display:none或input type='hidden' | 
| :visible | 匹配所有可见元素 | 
6. 属性选择器
| [attribute] | 匹配具有指定属性的元素 | 
| [attribute=value] | 匹配属性值等于value的元素 | 
| [attribute!=value] | 匹配属性值不等于value的元素 | 
| [attribute^=value] | 匹配属性值以value开始的元素 | 
| [attribute$=value] | 匹配属性值以value结尾的元素 | 
| [attribute*=value] | 匹配属性值包含value的元素 | 
| [selector1][selector2][selectorN] | 匹配同时具有多个属性的元素 | 
7. 子元素选择器
| :nth-child(index/even/odd) | 匹配索引等于index/eve/odd的子元素,默认从1算起 | 
| :first-child | 匹配第一个子元素 | 
| :last-child | 匹配最后一个子元素 | 
| :only-child | 如果当前元素是唯一的子元素,则匹配 | 
8. 表单元素选择器
| :input | 匹配所有表单元素,包括textarea与select下拉选框 | 
| :text | 匹配所有的文本框 | 
| :password | 匹配所有的密码框 | 
| :radio | 匹配所有的单选按钮 | 
| :checkbox | 匹配所有的复选框 | 
| :submit | 匹配所有的提交按钮 | 
| :reset | 匹配所有的重置按钮 | 
| :image | 匹配所有的图像域(input type='image') | 
| :button | 匹配所有的按钮(input type='button') | 
| :file | 匹配所有的文件域 | 
| :hidden | 匹配所有隐藏表单 | 
9. 表单对象属性选择器
| :enabled | 匹配所有可用的表单元素 | 
| :disabled | 匹配所有不可用的表单元素 | 
| :checked | 匹配所有选中的值 | 
| :selected | 匹配所有下拉选中的值 | 
问题1:在jQuery中,$(':input')与$('input')区别?
答::input是匹配所有表单元素,包括了textarea与select下拉
    input只能匹配以input开头的10种表单元素
问题2:在input表单元素中,readonly与disabled区别?
答:readonly可以通过http进行传值,但是disabled是没有办法传递的。
二、常用属性
1. 基本属性
| attr(name) | 获取指定元素的name属性 | 
| attr(key,value) | 设置元素的属性 | 
| attr(properties) | 一次为元素设置多个属性,要求参数是一个json格式的数据 | 
| attr(key,fn) | 通过一个函数的返回值设置元素的属性 | 
| removeAttr(name) | 移除元素的某个属性 | 
2. class属性
| addClass(class) | 为某个元素添加class样式 | 
| removeClass(class) | 移除元素的某个class样式 | 
| toggleClass(class) | 切换样式,如果存在则移除样式,反之,则添加样式 | 
| hasClass(class) | 判断元素是否具有某个class样式 | 
3. css属性
| css(name) | 获取元素的css属性 | 
| css(name,value) | 设置元素的css属性 | 
| css(properties) | 依次为元素设置多个css属性,要求参数是一个json格式的数据 | 
4. 位置操作
| offset() | 获取元素的位置,返回一个json格式的数据,包含了left与top属性 | 
| offset(coordinates) | 设置元素的位置,要求参数是一个json格式的数据,必须包含left与top两个属性 | 
5. 尺寸操作
| width() | 获取元素的宽度 | 
| width(value) | 设置元素的宽度 | 
| height() | 获取元素的高度 | 
| height(value) | 设置元素的高度 | 
6. 文本/值操作
相当于源代码中的innerHTML属性
| html() | 获取双标签元素的内容 | 
| html(val) | 设置双标签元素的内容 | 
相当于源代码中的value属性
| val() | 获取表单元素的内容 | 
| val(val) | 设置表单元素的内容 | 
相当于源代码中的innerText属性
| text() | 获取双标签元素的内容 | 
| text(val) | 设置双标签元素的内容 | 
说明:
实际项目开发中:通常使用html来获取双标签的内容,而通过val方法来获取表单元素的内容。
html标签和text标签对文本数据的获取效果是一致的,但是如果标签中又包含了子标签,那么通过html可以正常获取,但是使用text方法只能获取文本数据
html标签设置的内容中如果包含了html标签,其可以正常解析
text标签设置的内容中如果包含了html标签,其会作为普通文本直接输出
三、事件编程
1. 基本事件
| blur(fn) | 当失去焦点时触发 | 
| change(fn) | 当状态改变时触发 | 
| click(fn) | 当单击时触发 | 
| dblclick(fn) | 当双击时触发 | 
| focus(fn) | 当获得焦点时触发 | 
| keydown(fn) | 当键盘按下时触发 | 
| keyup(fn) | 当键盘弹起时触发 | 
| keypress(fn) | 当键盘按下时触发 | 
| load(fn) | 功能与ready方法类似,页面载入后触发 | 
| unload(fn) | 页面关闭时触发 | 
| mousedown(fn) | 鼠标按下时触发 | 
| mouseup(fn) | 鼠标弹起时触发 | 
| mousemove(fn) | 当鼠标移动时触发 | 
| mouseover(fn) | 当鼠标悬浮时触发 | 
| mouseout(fn) | 当鼠标离开时触发 | 
| resize(fn) | 当窗口大小改变时触发 | 
| scroll(fn) | 当滚动条滚动时触发 | 
| select(fn) | 当文本框的文本选中时触发 | 
| submit(fn) | 当表单提交时触发 | 
2. 事件切换
| hover(over,out) | 
 鼠标悬浮与鼠标离开事件 over:鼠标悬浮时所触发的事件处理程序(函数) out:鼠标离开时所触发的事件处理程序(函数)  | 
| toggle(fn,fn) | 
 点击触发事件,顺序触发 fn:当第一次单击时,所触发的事件处理程序 fn:当第二次单击时,所触发的事件处理程序 …  | 
3. 事件绑定
| bind(type,[data],fn) | 为元素绑定相关事件 | 
| bind({type:fn,type:fn}) | 为元素绑定多个事件,要求参数是一个json格式的数据 | 
| one(type,[data],fn) | 为元素事件进行一次绑定 | 
| unbind([type]) | 移除事件 | 
参数说明:
type:事件类型,不带'on'前缀,如click、mouseover、mouseout
[data]:事件发生时所传递的参数(了解)
fn:事件的处理程序
四、动画效果
1. 基本效果
| show() | 显示 | 
| show(speed,[callback]) | 以动画效果显示 | 
| hide() | 隐藏 | 
| hide(speed,[callback]) | 以动画效果隐藏 | 
| toggle() | 切换显示或隐藏,如果元素是显示的,则隐藏,反之,则显示 | 
| toggle(switch) | 显示或隐藏开关,如为true,则显示,如为false,则隐藏 | 
| toggle(speed,[callback]) | 以动画效果显示或隐藏 | 
参数说明:
speed:动画速度(动画的持续时间,单位是毫秒)
如果是速度,可以是如下几个值:
speed:"slow", "normal", "fast"
callback:动画完成时,所触发的回调函数
2. 滑动效果
| slideDown(speed,[callback]) | 以动画效果向下滑动 | 
| slideUp(speed,[callback]) | 以动画效果向上滑动 | 
| slideToggle(speed,[callback]) | 以动画效果向上或向下滑动 | 
参数说明:
speed:动画持续事件
callback:动画完成时,所触发的回调函数
3. 淡入淡出效果
| fadeIn(speed,[callback]) | 以动画效果淡入 | 
| fadeOut(speed,[callback]) | 以动画效果淡出 | 
| fadeTo(speed,opacity,[callback]) | 以动画效果设置元素的透明度,0全透明1不透明 | 
参数说明:
speed:动画的持续事件
callback:动画完成时,所触发的回调函数
opactity:元素的透明度,0全透明1不透明,0-1半透明效果
4. 自定义动画
| animate(params,[speed])设置自定义动画 | 
参数说明:
params:要求是一个json格式的数据
speed:动画的持续时间
五、文档操作
1. 内部插入
| append(content) | 在元素的尾部插入指定的内容content | 
| appendTo(content) | 将匹配到的内容插入到指定内容content的尾部 | 
| prepend(content) | 在元素的头部插入指定的内容content | 
| prependTo(content) | 将匹配到的内容插入到指定内容content的头部 | 
2. 外部插入
| after(content) | 在元素尾部插入内容content | 
| before(content) | 在元素头部插入内容content | 
| insertAfter(content) | 将匹配的内容插入到content元素的尾部 | 
| insertBefore(content) | 将匹配的内容插入到content元素的头部 | 
3. 删除操作
| empty() | 清空元素的内容,但不清除元素本身 | 
| remove() | 移除元素(包括元素的内容和元素本身) | 
4. 复制操作
| clone() | 克隆元素 | 
| clone(true) | 克隆元素本身同时克隆元素本身的事件 | 
5. 替换操作
| html() | 值替换 | 
| replaceWith() | 节点替换 | 
6. 包裹操作
| wrap() | 对所有匹配的元素进行单独包裹 | 
| wrapAll() | 对所有匹配的元素进行统一包裹,只包裹一次 | 
| wrapInner() | 对所有匹配的元素的内容进行单独包裹 | 
7. 查找操作
| eq(index) | 根据元素的索引index查找元素,默认从0开始 | 
| filter(expr) | 过滤元素(过滤不是移除,只是缩小查询到范围) | 
| not(expr) | 匹配出指定元素外的其他元素 | 
| children([expr]) | 匹配当前元素的所有子元素 | 
| find(expr) | 匹配当前元素的所有后代元素 | 
| next([expr]) | 匹配当前元素紧邻的下一个元素 | 
| prev([expr]) | 匹配当前元素紧邻的上一个元素 | 
| parent([expr]) | 匹配当前元素的父元素 | 
| siblings() | 匹配当前元素的所有同级兄弟元素 | 
                    
                
                
            
        
浙公网安备 33010602011771号