Skip to content

Latest commit

 

History

History
688 lines (492 loc) · 28.5 KB

File metadata and controls

688 lines (492 loc) · 28.5 KB

十五、附录 B:快速参考

本附录旨在作为 jQueryAPI 的快速参考,包括其选择器表达式和方法。关于每种方法和选择器的更详细讨论,请访问 jQuery 文档站点http://api.jquery.com

选择器表达式

jQuery 工厂函数$()用于在页面上查找要使用的元素。此函数接受由类似 CSS 的语法组成的字符串,称为选择器表达式。选择器表达式将在第 2 章选择元素中详细讨论。

简单 CSS

| 选择器 | 匹配 | | * | 所有元素。 | | #id | 具有给定 ID 的元素。 | | element | 给定类型的所有元素。 | | .class | 具有给定类的所有元素。 | | a, b | 由ab匹配的元素。 | | a b | 元素ba的后代。 | | a > b | 属于a的子元素b。 | | a + b | 紧接着a的元素b。 | | a ~ b | 元素ba的兄弟元素,跟随a。 |

兄弟姐妹间的地位

| 选择器 | 匹配 | | :nth-child(index) | 作为父元素index子元素的元素(基于 1)。 | | :nth-child(even) | 是其父元素偶数子元素的元素(基于 1)。 | | :nth-child(odd) | 作为其父元素奇数子元素的元素(基于 1)。 | | :nth-child(formula) | 作为其父元素的第 n 个子元素的元素(基于 1)。对于整数ab,公式的形式为an+b。 | | :nth-last-child() | 与:nth-child()相同,但从最后一个元素开始计算到第一个元素。 | | :first-child | 作为其父级的第一个子级的元素。 | | :last-child | 作为其父级的最后一个子级的元素。 | | :only-child | 作为其父级的唯一子级的元素。 | | :nth-of-type() | 与:nth-child()相同,但只统计相同元素名称的元素。 | | :nth-last-of-type() | 与:nth-last-child()相同,但只统计相同元素名称的元素。 | | :first-of-type | 是其同级中相同元素名称的第一个子元素的元素。 | | :last-of-type | 是其同级中相同元素名称的最后一个子元素的元素。 | | :only-of-type() | 元素是其同级中相同元素名称的唯一子元素。 |

匹配元素间的位置

选择器 匹配
:first 结果集中的第一个元素。
:last 结果集中的最后一个元素。
:not(a) 结果集中与a不匹配的所有元素。
:even 结果集中的偶数元素(基于 0)。
:odd 结果集中的奇数元素(基于 0)。
:eq(index) 结果集中的编号元素(基于 0)。
:gt(index) 结果集中位于(大于)给定索引(基于 0)之后的所有元素。
:lt(index) 结果集中给定索引之前(小于)的所有元素(基于 0)。

属性

| 选择器 | 匹配 | | [attr] | 具有属性attr的元素。 | | [attr="value"] | attr属性为value的元素。 | | [attr!="value"] | attr属性不是value的元素。 | | [attr^="value"] | attr属性以value开头的元素。 | | [attr$="value"] | attr属性以value结尾的元素。 | | [attr*="value"] | 其attr属性包含子字符串value的元素。 | | [attr~="value"] | 元素,其attr属性是一组空格分隔的字符串,其中一个是value。 | | [attr|="value"] | 其attr属性等于value或以value开头,后跟连字符的元素。 |

形式

选择器 匹配
:input 所有的<input><select><textarea><button>元素。
:text 带有type="text"<input>元素。
:password 带有type="password"<input>元素。
:file 带有type="file"<input>元素。
:radio 带有type="radio"<input>元素。
:checkbox 带有type="checkbox"<input>元素。
:submit 带有type="submit"<input>元素。
:image 带有type="image"<input>元素。
:reset 带有type="reset"<input>元素。
:button 具有type="button"<button>元素的<input>元素。
:enabled 启用的表单元素。
:disabled 禁用表单元素。
:checked 选中复选框和单选按钮。
:selected 选择<option>元素。

杂项选择器

| 选择器 | 匹配 | | :root | 文档的根元素。 | | :header | 标题元素(例如,<h1><h2>)。 | | :animated | 正在播放动画的元素。 | | :contains(text) | 包含给定文本的元素。 | | :empty | 没有子节点的元素。 | | :has(a) | 包含与a匹配的后代元素的元素。 | | :parent | 具有子节点的元素。 | | :hidden | 隐藏的元素,无论是通过 CSS 还是因为它们是<input type="hidden" />。 | | :visible | :hidden的倒数。 | | :focus | 具有键盘焦点的元素。 | | :lang(language) | 具有给定语言代码的元素(由于元素上的lang属性或祖先,或<meta>声明)。 | | :target | URI 的片段标识符以哪个元素为目标(如果有)。 |

DOM 遍历方法

在使用$()创建 jQuery 对象之后,我们可以通过调用这些 DOM 遍历方法之一来更改正在使用的匹配元素集。DOM 遍历方法在第 2 章选择元素中有详细讨论。

过滤

| 穿越方式 | 返回一个包含。。。 | | .filter(selector) | 与给定选择器匹配的选定图元。 | | .filter(callback) | 回调函数返回true的选定元素。 | | .eq(index) | 给定的基于 0 的索引处的选定元素。 | | .first() | 第一个选定的元素。 | | .last() | 最终选定的元素。 | | .slice(start, [end]) | 给定范围内基于 0 的索引中的选定元素。 | | .not(selector) | 与给定选择器不匹配的选定图元。 | | .has(selector) | 具有子代匹配selector的选定元素。 |

后代

| 穿越方式 | 返回一个包含。。。 | | .find(selector) | 与选择器匹配的子元素。 | | .contents() | 子节点(包括文本节点)。 | | .children([selector]) | 子节点,可选地由选择器过滤。 |

兄弟姐妹

穿越方式 返回一个包含。。。
.next([selector]) 紧跟在每个选定元素之后的同级元素,可选地由选择器过滤。
.nextAll([selector]) 每个选定元素后面的所有同级元素(可选地由选择器过滤)。
.nextUntil([selector], [filter]) 每个选定元素后面的所有同级元素,直到且不包括匹配selector的第一个元素,可选地由附加选择器过滤。
.prev([selector]) 紧靠每个选定元素前面的同级元素,可选地由选择器过滤。
.prevAll([selector]) 每个选定元素前面的所有同级元素,可选地由选择器过滤。
.prevUntil([selector], [filter]) 每个选定元素前面的所有同级元素,直到且不包括匹配selector的第一个元素,可选地由附加选择器过滤。
.siblings([selector]) 所有同级,可选地由选择器过滤。

祖先

| 穿越方式 | 返回一个包含。。。 | | .parent([selector]) | 每个选定元素的父元素,可选地由选择器过滤。 | | .parents([selector]) | 所有祖先,可选地由选择器过滤。 | | .parentsUntil([selector], [filter]) | 每个选定元素的所有祖先,直到且不包括匹配selector的第一个元素,可选地由附加选择器过滤。 | | .closest(selector) | 与选择器匹配的第一个元素,从所选元素开始,在 DOM 树中通过其祖先向上移动。 | | .offsetParent() | 第一个选定元素的相对或绝对定位父元素。 |

集合操纵

| 穿越方式 | 返回一个包含。。。 | | .add(selector) | 所选元素,以及与给定选择器匹配的任何其他元素。 | | .addBack() | 所选元素,加上内部 jQuery 堆栈上的上一组所选元素。 | | .end() | 内部 jQuery 堆栈上的上一组选定元素。 | | .map(callback) | 对每个选定元素调用回调函数的结果。 | | .pushStack(elements) | 指定的元素。 |

使用选定图元

| 穿越方式 | 说明 | | .is(selector) | 确定给定选择器表达式是否匹配任何匹配的元素。 | | .index() | 获取匹配元素相对于其同级的索引。 | | .index(element) | 获取匹配元素集中给定 DOM 节点的索引。 | | $.contains(a, b) | 确定 DOM 节点b是否包含 DOM 节点a。 | | .each(callback) | 迭代匹配的元素,对每个元素执行callback。 | | .length | 获取匹配元素的数目。 | | .get() | 获取与匹配元素对应的 DOM 节点数组。 | | .get(index) | 获取与给定索引处的匹配元素对应的 DOM 节点。 | | .toArray() | 获取与匹配元素对应的 DOM 节点数组。 |

事件方法

为了对用户行为做出反应,我们需要使用这些事件方法注册处理程序。注意,许多 DOM 事件只适用于某些元素类型;这里不涉及这些微妙之处。事件方法在第 3 章处理事件中详细讨论。

结合

事件方法 说明
.ready(handler) 绑定handler以在 DOM 和 CSS 完全加载时调用。
.on(type, [selector], [data], handler) 将给定类型的事件发送到元素时要调用的绑定handler。如果提供了selector,则执行事件委托。
.on(events, [selector], [data]) events对象参数中指定的事件绑定多个处理程序。
.off(type, [selector], [handler]) 删除元素上的绑定。
.one(type, [data], handler) 将给定类型的事件发送到元素时要调用的绑定handler。调用处理程序时移除绑定。

速记装订

事件方法 说明
.blur(handler) 绑定handler以在元素失去键盘焦点时调用。
.change(handler) 绑定handler以在元素值更改时调用。
.click(handler) 绑定handler以在单击元素时调用。
.dblclick(handler) 双击元素时绑定要调用的handler
.focus(handler) 绑定handler以在元素获得键盘焦点时调用。
.focusin(handler) 绑定handler以在元素或子元素获得键盘焦点时调用。
.focusout(handler) 绑定handler以在元素或后代失去键盘焦点时调用。
.keydown(handler) 绑定handler以在按下某个键且该元素具有键盘焦点时调用。
.keypress(handler) 绑定handler以在发生击键且元素具有键盘焦点时调用。
.keyup(handler) 绑定handler以在释放键且元素具有键盘焦点时调用。
.mousedown(handler) 在元素内按下鼠标按钮时绑定要调用的handler
.mouseenter(handler) 当鼠标指针进入元素时绑定要调用的handler。不受事件冒泡的影响。
.mouseleave(handler) 绑定handler以在鼠标指针离开元素时调用。不受事件冒泡的影响。
.mousemove(handler) 当鼠标指针在元素内移动时绑定要调用的handler
.mouseout(handler) 绑定handler以在鼠标指针离开元素时调用。
.mouseover(handler) 当鼠标指针进入元素时绑定要调用的handler
.mouseup(handler) 绑定handler以在元素内释放鼠标按钮时调用。
.resize(handler) 在调整元素大小时绑定要调用的handler
.scroll(handler) 绑定handler以在元素的滚动位置更改时调用。
.select(handler) 选择元素中的文本时绑定要调用的handler
.submit(handler) 绑定提交表单元素时要调用的handler
.hover(enter, leave) 绑定enter在鼠标进入元素时调用,绑定leave在鼠标离开元素时调用。

触发

| 事件方法 | 说明 | | .trigger(type, [data]) | 触发元素上事件的处理程序,并执行事件的默认操作。 | | .triggerHandler(type, [data]) | 触发元素上事件的处理程序,而不执行任何默认操作。 |

速记触发

| 事件方法 | 说明 | | .blur() | 触发blur事件。 | | .change() | 触发change事件。 | | .click() | 触发click事件。 | | .dblclick() | 触发dblclick事件。 | | .error() | 触发error事件。 | | .focus() | 触发focus事件。 | | .keydown() | 触发keydown事件。 | | .keypress() | 触发keypress事件。 | | .keyup() | 触发keyup事件。 | | .select() | 触发select事件。 | | .submit() | 触发submit事件。 |

公用事业

| 事件方法 | 说明 | | $.proxy(fn, context) | 创建使用给定上下文执行的新函数。 |

效果方法

这些效果方法可用于在 DOM 元素上执行动画。在第 4 章样式和动画中详细讨论了效果方法。

预定义效果

效果方法 说明
.show() 显示匹配的元素。
.hide() 隐藏匹配的元素。
.show(speed, [callback]) 通过设置heightwidthopacity的动画来显示匹配的元素。
.hide(speed, [callback]) 通过设置heightwidthopacity的动画来隐藏匹配的元素。
.slideDown([speed], [callback]) 显示具有滑动运动的匹配图元。
.slideUp([speed], [callback]) 通过滑动运动隐藏匹配的元素。
.slideToggle([speed], [callback]) 显示或隐藏具有滑动运动的匹配元素。
.fadeIn([speed], [callback]) 通过将匹配的图元淡入不透明状态来显示这些图元。
.fadeOut([speed], [callback]) 通过将匹配的元素淡入透明状态来隐藏这些元素。
.fadeToggle([speed], [callback]) 显示或隐藏带有淡入淡出动画的匹配元素。
.fadeTo(speed, opacity, [callback]) 调整匹配元素的不透明度。

自定义动画

| 效果方法 | 说明 | | .animate(properties, [speed], [easing], [callback]) | 执行指定 CSS 属性的自定义动画。 | | .animate(properties, options) | .animate()的较低级别接口,允许控制动画队列。 |

队列操作

效果方法 说明
.queue([queueName]) 检索第一个匹配元素上的函数队列。
.queue([queueName], callback) callback添加到队列的末尾。
.queue([queueName], newQueue) 将队列替换为新队列。
.dequeue([queueName]) 执行队列上的下一个函数。
.clearQueue([queueName]) 清空所有挂起函数的队列。
.stop([clearQueue], [jumpToEnd]) 停止当前正在运行的动画,然后启动排队的动画(如果有)。
.finish([queueName]) 停止当前正在运行的动画,并立即将所有排队的动画推进到其目标值。
.delay(duration, [queueName]) 在执行队列中的下一项之前等待duration毫秒。
.promise([queueName], [target]) 返回集合上的所有排队操作完成后要解析的承诺对象。

DOM 操作方法

第 5 章操作 DOM中详细讨论了 DOM 操作方法。

属性和属性

手法 说明
.attr(key) 获取名为key的属性。
.attr(key, value) 将名为key的属性设置为value
.attr(key, fn) 将名为key的属性设置为fn的结果(对每个匹配的元素分别调用)。
.attr(obj) 设置作为键值对给定的属性值。
.removeAttr(key) 删除名为key的属性。
.prop(key) 获取名为key的属性。
.prop(key, value) 将名为key的属性设置为value
.prop(key, fn) 将名为key的属性设置为fn的结果(对每个匹配的元素分别调用)。
.prop(obj) 设置作为键值对给定的属性值。
.removeProp(key) 删除名为key的属性。
.addClass(class) 将给定的类添加到每个匹配的元素。
.removeClass(class) 从每个匹配的元素中删除给定的类。
.toggleClass(class) 为每个匹配的元素移除给定的类(如果存在),如果不存在则添加它。
.hasClass(class) 如果任何匹配的元素具有给定的类,则返回true
.val() 获取第一个匹配元素的 value 属性。
.val(value) 将每个元素的值属性设置为value

所容纳之物

| 手法 | 说明 | | .html() | 获取第一个匹配元素的 HTML 内容。 | | .html(value) | 将每个匹配元素的 HTML 内容设置为值。 | | .text() | 以单个字符串的形式获取所有匹配元素的文本内容。 | | .text(value) | 将每个匹配元素的文本内容设置为value。 |

CSS

| 手法 | 说明 | | .css(key) | 获取名为key的 CSS 属性。 | | .css(key, value) | 将名为key的 CSS 属性设置为value。 | | .css(obj) | 设置作为键值对给定的 CSS 属性值。 |

尺寸

| 手法 | 说明 | | .offset() | 获取第一个匹配元素相对于视口的顶部和左侧像素坐标。 | | .position() | 获取第一个匹配元素相对于.offsetParent()返回的元素的顶部和左侧像素坐标。 | | .scrollTop() | 获取第一个匹配元素的垂直滚动位置。 | | .scrollTop(value) | 将所有匹配元素的垂直滚动位置设置为value。 | | .scrollLeft() | 获取第一个匹配元素的水平滚动位置。 | | .scrollLeft(value) | 将所有匹配元素的水平滚动位置设置为value。 | | .height() | 获取第一个匹配元素的高度。 | | .height(value) | 将所有匹配元素的高度设置为value。 | | .width() | 获取第一个匹配元素的宽度。 | | .width(value) | 将所有匹配元素的宽度设置为value。 | | .innerHeight() | 获取第一个匹配元素的高度,包括填充,但不包括边框。 | | .innerWidth() | 获取第一个匹配元素的宽度,包括填充,但不包括边框。 | | .outerHeight(includeMargin) | 获取第一个匹配元素的高度,包括填充、边框和可选边距。 | | .outerWidth(includeMargin) | 获取第一个匹配元素的宽度,包括填充、边框和可选边距。 |

插入

手法 说明
.append(content) 在每个匹配元件的内部末端插入content
.appendTo(selector) selector匹配的元素内部的末端插入匹配的元素。
.prepend(content) 在每个匹配元素的内部开始处插入content
.prependTo(selector) selector匹配的元素内部的开始处插入匹配的元素。
.after(content) 在每个匹配元素后插入content
.insertAfter(selector) selector匹配的每个元素之后插入匹配的元素。
.before(content) 在每个匹配元素前插入content
.insertBefore(selector) selector匹配的每个元素之前插入匹配的元素。
.wrap(content) 将每个匹配元素包装在content中。
.wrapAll(content) 将所有匹配元素包装为content内的单个单元。
.wrapInner(content) 将每个匹配元素的内部内容包装在content中。

替换

| 手法 | 说明 | | .replaceWith(content) | 将匹配的元素替换为content。 | | .replaceAll(selector) | 用匹配的元素替换selector匹配的元素。 |

移动

手法 说明
.empty() 删除每个匹配元素的子节点。
.remove([selector]) 从 DOM 中删除匹配的节点(可选地由selector过滤)。
.detach([selector]) 从 DOM 中删除匹配的节点(可选地由selector过滤),保留附加到它们的 jQuery 数据。
.unwrap() 删除元素的父元素。

临摹

| 手法 | 说明 | | .clone([withHandlers], [deepWithHandlers]) | 创建所有匹配元素的副本,还可以选择复制事件处理程序。 |

数据

| 手法 | 说明 | | .data(key) | 获取与第一个匹配元素关联的名为key的数据项。 | | .data(key, value) | 将与每个匹配元素关联的名为key的数据项设置为value。 | | .removeData(key) | 删除与每个匹配元素关联的名为key的数据项。 |

Ajax 方法

通过调用这些 Ajax 方法之一,我们可以从服务器检索信息,而无需刷新页面。在第 6 章使用 Ajax 发送数据中详细讨论了 Ajax 方法。

发出请求

Ajax 方法 说明
$.ajax([url], options) 使用提供的一组选项发出 Ajax 请求。这是一种低级方法,通常通过其他方便的方法调用。
.load(url, [data], [callback]) url发出 Ajax 请求,并将响应放入匹配的元素中。
$.get(url, [data], [callback], [returnType]) 使用GET方法向url发出 Ajax 请求。
$.getJSON(url, [data], [callback]) url发出 Ajax 请求,将响应解释为 JSON 数据结构。
$.getScript(url, [callback]) url发出 Ajax 请求,以 JavaScript 形式执行响应。
$.post(url, [data], [callback], [returnType]) 使用POST方法向url发出 Ajax 请求。

请求监视

| Ajax 方法 | 说明 | | .ajaxComplete(handler) | 绑定handler以在任何 Ajax 事务完成时调用。 | | .ajaxError(handler) | 绑定handler以在任何 Ajax 事务完成并出现错误时调用。 | | .ajaxSend(handler) | 绑定handler以在任何 Ajax 事务开始时调用。 | | .ajaxStart(handler) | 绑定handler以在任何 Ajax 事务开始时调用,并且没有其他事务处于活动状态。 | | .ajaxStop(handler) | 绑定handler以在任何 Ajax 事务结束时调用,并且没有其他事务仍处于活动状态。 | | .ajaxSuccess(handler) | 绑定handler以在任何 Ajax 事务成功完成时调用。 |

配置

| Ajax 方法 | 说明 | | $.ajaxSetup(options) | 为所有后续 Ajax 事务设置默认选项。 | | $.ajaxPrefilter([dataTypes], handler) | 在$.ajax()处理每个 Ajax 请求之前修改其选项。 | | $.ajaxTransport(transportFunction) | 为 Ajax 事务定义一种新的传输机制。 |

公用事业

| Ajax 方法 | 说明 | | .serialize() | 将一组表单控件的值编码为查询字符串。 | | .serializeArray() | 将一组表单控件的值编码到 JavaScript 数据结构中。 | | $.param(obj) | 将键值对的任意对象编码为查询字符串。 | | $.globalEval(code) | 在全局上下文中计算给定的 JavaScript 字符串。 | | $.parseJSON(json) | 将给定的 JSON 字符串转换为 JavaScript 对象。 | | $.parseXML(xml) | 将给定的 XML 字符串转换为 XML 文档。 | | $.parseHTML(html) | 将给定的 HTML 字符串转换为一组 DOM 元素。 |

递延对象

延迟对象及其承诺允许我们使用方便的语法对长时间运行的任务的完成做出反应。在第 11 章高级效果中详细讨论。

对象创建

| 功能 | 说明 | | $.Deferred([setupFunction]) | 返回一个新的延迟对象。 | | $.when(deferreds) | 在解析给定的延迟对象时返回要解析的承诺对象。 |

延迟对象的方法

方法 说明
.resolve([args]) 将对象的状态设置为已解析。
.resolveWith(context, [args]) 将对象的状态设置为已解析,同时使关键字this在回调中引用context
.reject([args]) 将对象的状态设置为“已拒绝”。
.rejectWith(context, [args]) 将对象的状态设置为拒绝,同时使关键字this在回调中引用context
.notify([args]) 执行任何进度回调。
.notifyWith(context, [args]) 执行任何进度回调,同时使关键字this引用context
.promise([target]) 返回与此延迟对象对应的承诺对象。

承诺对象的方法

| 方法 | 说明 | | .done(callback) | 解析对象时执行callback。 | | .fail(callback) | 当对象被拒绝时执行callback。 | | .catch(callback) | 对象被拒绝时执行**callback**。 | | .always(callback) | 解析或拒绝对象时执行callback。 | | .then(doneCallbacks, failCallbacks) | 解析对象时执行doneCallbacks,拒绝对象时执行failCallbacks。 | | .progress(callback) | 每次对象收到进度通知时执行callback。 | | .state() | 根据当前状态返回'pending''resolved''rejected'。 |

杂项属性和功能

这些实用程序方法不适合前面的类别,但在使用 jQuery 编写脚本时通常非常有用。

这本书是从 AvaxHome 下载的!

访问我的博客,了解更多新书:

https://avxhm.se/blogs/AlenMiler

jQuery 对象的属性

| 物业 | 说明 | | $.ready | 一个承诺实例,在 DOM 准备就绪后立即解析。 |

数组和对象

| 功能 | 说明 | | $.each(collection, callback) | 迭代collection,对每个项目执行callback。 | | $.extend(target, addition, ...) | 通过添加来自其他提供对象的属性来修改对象target。 | | $.grep(array, callback, [invert]) | 使用callback作为测试,过滤array。 | | $.makeArray(object) | 将object转换为数组。 | | $.map(array, callback) | 构造一个新数组,该数组由对每个项调用的callback结果组成。 | | $.inArray(value, array) | 确定value是否在array中。 | | $.merge(array1, array2) | 结合了array1array2的内容。 | | $.unique(array) | 从array中删除任何重复的 DOM 元素。 |

对象内省

功能 说明
$.isArray(object) 确定object是否为真正的 JavaScript 数组。
$.isEmptyObject(object) 确定object是否为空。
$.isFunction(object) 确定object是否为函数。
$.isPlainObject(object) 确定object是作为对象文字创建的还是使用new Object创建的。
$.isNumeric(object) 确定object是否为数值标量值。
$.isWindow(object) 确定object是否表示浏览器窗口。
$.isXMLDoc(object) 确定object是否为 XML 节点。
$.type(object) 获取object的 JavaScript 类。

另外

| 功能 | 说明 | | $.trim(string) | 删除string结尾处的空白。 | | $.noConflict([removeAll]) | 将<footer style="margin-top: 5em;"恢复为 jQuery 之前的定义。 | | $.noop()| 不做任何事情的函数。 | |$.now()| 自历元以来的当前时间(毫秒)。 | |$.holdReady(hold) | 停止触发ready`事件,或释放此保持。 |