MDUI 内置了一个轻量的 JavaScript 工具库,它拥有和 jQuery 类似的 api 和 jQuery 风格的链式调用,但体积仅为 jQuery 的六分之一。
你可以通过 mdui.JQ 来调用该库,但最好把 mdui.JQ 存储到一个简短的变量中以方便调用,为了避免和其他库冲突,推荐使用 $$。
var $$ = mdui.JQ;在后面的文档中,都使用 $$ 来表示 mdui.JQ。
$$() | 该方法有多种用法: 可以传入一个 CSS 选择器作为参数,返回包含匹配元素的 JQ 对象。该方法是通过 querySelectorAll 实现的。 可以传入 DOM 元素、DOM 元素数组、NodeList、JQ 对象,返回包含指定元素的 JQ 对象。 可以传入 HTML 字符串,返回包含根据 HTML 创建的 DOM 的 JQ 对象。 可以传入一个函数,在 DOM 加载完毕后会调用该函数。 |
$$.extend() | 如果只传入一个对象,该对象中的属性将合并到 JQ 对象中,相当于在 JQ 的命名空间下添加新的功能。 如果传入了两个或更多个对象,所有对象的属性都添加到第一个对象,并返回合并后的对象。 |
$$.fn.extend() | 在 JQ 的原型链上扩展方法。 |
$$.param() | 将数组或对象序列化。 |
$$.each() | 遍历数组或对象 |
$$.merge() | 合并两个数组,合并的结果会替换第一个数组的内容,并返回合并的结果。 |
$$.unique() | 删除数组中的重复元素。可以是 DOM 元素数组、字符串数组、数字数组。返回去重后的数组。 |
$$.map() | 遍历数组或对象,通过函数返回一个新的数组或对象, |
$$.contains() | 判断父节点是否包含子节点,返回布尔值。 |
.is() | 根据 CSS 选择器、DOM 元素、或 JQ 对象来检测匹配的元素集合,至少有一个元素匹配则返回 true,否则返回 false。 |
.length | 返回 JQ 对象中元素的数量。 |
.each() | 遍历一个 JQ 对象,为每一个匹配元素执行一个函数。如果函数返回 false,则结束遍历。 函数的第一个参数为元素的索引号,第二个参数为当前元素。函数的 this 关键字指向当前元素。 |
.map() | 遍历一个 JQ 对象,为对象的每个元素都调用一个函数,生成一个包含函数返回值的新的 JQ 对象。 函数的第一个参数为元素的索引号,第二个参数为当前元素。函数的 this 关键字指向当前元素。 |
.eq() | 返回 JQ 对象中指定索引号的元素的 JQ 对象。 |
.first() | 返回 JQ 对象中第一个元素的 JQ 对象。 |
.last() | 返回 JQ 对象中最后一个元素的 JQ 对象。 |
.get() | 返回 JQ 对象中指定索引号的 DOM 元素。若没有指定索引号,则返回 JQ 对象中所有 DOM 元素组成的数组。 |
.index() | 如果没有传入参数,则返回 JQ 对象中第一个元素相对于同辈元素的索引值。 如果传入了一个 CSS 选择器作为参数,则返回 JQ 对象中第一个元素相对与 CSS 选择器匹配元素的索引值。 如果传入了一个 DOM 元素,则返回该 DOM 元素在 JQ 对象中的索引值。 |
.slice() | 返回一个 JQ 对象的子集。 子集为从 start 开始的元素。如果传入了 end 参数,则提取从 start 到不包含 end 位置的元素。 |
.filter() | 从 JQ 对象中筛选出与指定表达式匹配的元素的 JQ 对象。参数可以是 CSS 选择器、JQ 对象、DOM 元素、函数。 参数为函数时,函数的第一个参数为当前元素在 JQ 对象中的索引号,第二个参数为当前元素,this 关键字指向当前元素。函数返回 true 时,该元素会被保留,返回 false 时,该元素会被去除。 |
.not() | 从 JQ 对象中筛选出与指定表达式不匹配的元素的 JQ 对象。参数可以是 CSS 选择器、JQ 对象、DOM 元素、函数。 参数为函数时,函数的第一个参数为当前元素在 JQ 对象中的索引号,第二个参数为当前元素,this 关键字指向当前元素。函数返回 true 时,该元素会被去除,返回 false 时,该元素会被保留。 |
.hasClass() | 判断 JQ 对象中的第一个元素是否含有指定 CSS 类。 |
.addClass() | 为元素添加 CSS 类,多个类名之间可以用空格分隔。 |
.removeClass() | 移除元素上的 CSS 类,多个类名之间可以用空格分隔。 |
.toggleClass() | 元素上的 CSS 类,有则删除,无则添加。多个类名之间可以用空格分隔。 |
.prop() | 获取或设置选中元素的属性值。 |
.removeProp() | 删除选中元素指定的属性值。 |
.attr() | 获取或设置选中元素的属性值。 |
.removeAttr() | 删除选中元素的指定属性值。 |
.val() | 获取或设置选中元素的值。 |
.text() | 获取或设置选中元素的文本内容。 |
.html() | 获取或设置选中元素的 HTML 内容。 |
$$.data() | 在 DOM 元素上读取或存储数据。 |
$$.removeData() | 删除 DOM 上存储的数据。 |
.data() | 在当前 JQ 对象的元素上存储数据。 |
.removeData() | 删除 JQ 对象的元素上存储的数据。 |
.css() | 获取 JQ 对象中的第一个元素的样式值,或者设置每一个元素的样式。 |
.width() | 如果没有传入参数,则获取 JQ 对象中第一个元素的宽度。 如果传入了参数,则设置 JQ 对象中所有元素的宽度,如果参数是个数字或数字字符串,会自动添加 px 作为单位。 该方法获取的值默认不包含内边距和外边距,当 box-sizing:border-box 时,会包含内边距。 |
.height() | 如果没有传入参数,则获取 JQ 对象中第一个元素的高度。 如果传入了参数,则设置 JQ 对象中所有元素的高度,如果参数是个数字或数字字符串,会自动添加 px 作为单位。 该方法获取的值默认不包含内边距和外边距,当 box-sizing:border-box 时,会包含内边距。 |
.innerWidth() | 获取元素的宽度,包含内边距。 |
.innerHeight() | 获取元素的高度,包含内边距。 |
.hide() | 隐藏 JQ 对象中的所有元素。 |
.show() | 恢复 JQ 对象中的所有元素的显示状态。 |
.toggle() | 切换 JQ 对象中所有元素的显示状态。 |
.offset() | 获取元素相对于 document 的偏移,以及元素的宽度和高度。 |
.offsetParent() | 返回 JQ 对象中第一个元素的用于定位的父元素的 JQ 对象。即父元素中第一个 position 为 relative 或 absolute 的元素。 |
.position() | 获取元素相对于父元素的偏移,以及宽度和高度。 |
.find() | 根据 CSS 选择器找到指定的后代节点的集合。 |
.children() | 获取匹配元素的直接子元素,可以使用 CSS 选择器作为参数进行过滤。 参数可以是 CSS 选择器、JQ 对象、DOM 元素、DOM 元素数组、NodeList。 |
.has() | 对匹配元素的子元素,按传入的参数进行过滤,返回过滤后的元素的 JQ 对象。 传入的参数可以是 CSS 选择器、JQ 对象、DOM 元素、DOM 元素数组、NodeList。 |
.parent() | 返回匹配的直接父元素的 JQ 对象。 如果没有传入参数,则直接返回直接父元素的 JQ 对象。如果传入了参数,仅返回和参数匹配的直接父元素的 JQ 对象。 参数可以是 CSS 选择器、JQ 对象、DOM 元素、DOM 元素数组、NodeList。 |
.parents() | 返回匹配的所有祖先元素的 JQ 对象。 传入的参数可以是 CSS 选择器、JQ 对象、DOM 元素、DOM 元素数组、NodeList。 |
.parentsUntil() | 查找当前元素的所有父辈元素,直到遇到匹配的那个元素为止。 返回的 JQ 对象里包含了下面所有找到的父辈元素,但不包含参数匹配到的元素。 |
.prev() | 获取当前元素的前一个同辈元素的 JQ 对象。可以使用参数进行过滤。 参数可以是 CSS 选择器、JQ 对象、DOM 元素、DOM 元素数组、NodeList。 |
.prevAll() | 获取当前元素前面的所有同辈元素的 JQ 对象。可以使用参数进行过滤。 参数可以是 CSS 选择器、JQ 对象、DOM 元素、DOM 元素数组、NodeList。 |
.prevUntil() | 获取当前元素前面所有的同辈元素,直到遇到匹配元素,不包含匹配元素。 参数可以是 CSS 选择器、JQ 对象、DOM 元素、DOM 元素数组、NodeList。 |
.next() | 获取当前元素的后一个同辈元素的 JQ 对象。可以使用参数进行过滤。 参数可以是 CSS 选择器、JQ 对象、DOM 元素、DOM 元素数组、NodeList。 |
.nextAll() | 获取当前元素后面的所有同辈元素的 JQ 对象。可以使用参数进行过滤。 参数可以是 CSS 选择器、JQ 对象、DOM 元素、DOM 元素数组、NodeList。 |
.nextUntil() | 获取当前元素后面所有的同辈元素,直到遇到匹配元素,不包含匹配元素。 参数可以是 CSS 选择器、JQ 对象、DOM 元素、DOM 元素数组、NodeList。 |
.closest() | 从当前元素向上逐级匹配,返回最先匹配到的元素。 参数可以是 CSS 选择器、JQ 对象、DOM 元素、DOM 元素数组、NodeList。 |
.siblings() | 获取当前元素的所有同辈元素。可以使用参数进行过滤。 参数可以是 CSS 选择器、JQ 对象、DOM 元素、DOM 元素数组、NodeList。 |
.add() | 添加元素到当前 JQ 对象中。 参数可以是 CSS 选择器、JQ 对象、DOM 元素、DOM 元素数组、NodeList。 |
.empty() | 从 DOM 中移除选中元素的所有子节点。 |
.remove() | 从 DOM 中移除所有选中的元素。 |
.prepend() | 在选中元素内部的前面插入指定内容。 传入的参数可以是 字符串、HTML、JQ 对象、DOM 元素、DOM 元素数组、NodeList。 |
.prependTo() | 把选中元素添加到另一个指定元素的内部的前面。 传入的参数可以是 CSS 选择器、JQ 对象、DOM 元素、DOM 元素数组、NodeList。 |
.append() | 在选中元素内部的后面插入指定内容。 传入的参数可以是 字符串、HTML、JQ 对象、DOM 元素、DOM 元素数组、NodeList。 |
.appendTo() | 把选中元素插入到另一个指定元素的内部的后面。 传入的参数可以是 CSS 选择器、JQ 对象、DOM 元素、DOM 元素数组、NodeList。 |
.after() | 在选中元素的后面插入内容。 传入的参数可以是 CSS 选择器、JQ 对象、DOM 元素、DOM 元素数组、NodeList、HTML 字符串 |
.insertAfter() | 把选中元素插入到指定元素的后面。 传入的参数可以是 CSS 选择器、JQ 对象、DOM 元素、DOM 元素数组、NodeList、HTML 字符串 |
.before() | 在选中元素前面插入内容。 传入的参数可以是 CSS 选择器、JQ 对象、DOM 元素、DOM 元素数组、NodeList、HTML 字符串 |
.insertBefore() | 把选中元素插入到指定元素前面。 传入的参数可以是 CSS 选择器、JQ 对象、DOM 元素、DOM 元素数组、NodeList、HTML 字符串 |
.replaceWith() | 用新元素替换选中元素。 传入的参数可以是 CSS 选择器、JQ 对象、DOM 元素、DOM 元素数组、NodeList、HTML 字符串 |
.replaceAll() | 用选中元素替换指定元素。 传入的参数可以是 CSS 选择器、JQ 对象、DOM 元素、DOM 元素数组、NodeList |
.clone() | 通过深度克隆来复制集合中的所有元素。 通过原生 cloneNode 方法深度克隆来复制集合中的所有元素。此方法不会有数据和事件处理程序复制到新的元素。这点和jquery中利用一个参数来确定是否复制数据和事件处理不相同。 |
.serializeArray() | 把表单元素的值组合成由 name 和 value 的键值对组成的数组。 |
.serialize() | 将表单元素数组或者对象序列化。 |
.on() | 为每个匹配元素的特定事件绑定事件处理函数。 |
.one() | 为每个匹配元素的特定事件绑定事件处理函数。但事件只会触发一次。 该方法的用法和 |
.off() | 从每个匹配的元素中解除绑定的事件。 |
.trigger() | 触发指定的事件 |
.ready() | DOM 加载完毕, |
$$.ajaxSetup() | 设置全局 AJAX 默认参数。 详细参数列表见下方的 AJAX 参数。 |
$$.ajax() | 发送 AJAX 请求,返回其创建的 XMLHttpRequest 对象。 详细参数列表见下方的 AJAX 参数。 |
.ajaxStart() | 全局 AJAX 事件。 AJAX 请求开始时执行函数。 |
.ajaxSuccess() | 全局 AJAX 事件。 AJAX 请求成功时执行函数。 |
.ajaxError() | 全局 AJAX 事件。 AJAX 请求发生错误时执行函数。 |
.ajaxComplete() | 全局 AJAX 事件。 AJAX 请求完成时执行函数。 |
| 参数名 | 参数类型 | 默认值 | 描述 |
|---|---|---|---|
method | String | GET | 请求方式。 包括:GET、POST、PUT、PATCH、HEAD、OPTIONS、DELETE |
data | Object, String | '' | 发送到服务器的数据。 |
processData | Boolean | true | 是否把传递进来的数据转换成查询字符串发送。 |
async | Boolean | true | 是否为异步请求。 |
cache | Boolean | true | 是否从缓存中读取。只对 GET、HEAD 请求有效。 |
username | String | '' | HTTP 访问认证的用户名。 |
password | String | '' | HTTP 访问认证的密码。 |
headers | Object | {} | 添加到 Headers 中的数据。可以在 beforeSend 回调函数中重写该值。 |
xhrFields | Object | {} | 设置在 XMLHttpRequest 对象上的数据。 |
statusCode | Object | {} | HTTP 状态码和函数组成的对象。 状态码在 200 - 299 之间表示请求成功,函数参数和 |
dataType | String | text | 服务器返回的数据类型。 包括:text、json、jsonp |
jsonp | String | callback | JSONP 请求中的回调函数名称。 |
jsonpCallback | String, Function | 生成随机字符串的函数 | JSONP 请求的回调函数名称。你可以指定一个固定的名称,使浏览器能缓存 GET 请求。 |
contentType | String | application/x-www-form-urlencoded | 内容的编码类型。为 false 时将不设置 Content-Type。 |
timeout | Number | 0 | 请求的超时时间(毫秒)。为 0 时表示永不超时。 |
global | Boolean | true | 是否触发全局 AJAX 事件。 |
beforeSend | Function | 在请求发送之前调用。返回 | |
success | Function | 请求成功之后调用。 | |
error | Function | 请求出错时调用。 | |
complete | Function | 请求完成之后调用。 |
.reflow() | 重绘当前元素。 |
.transition() | 设置当前元素的 transition-duration 属性。 |
.transitionEnd() | 在当前元素上添加 transitionend 事件回调。 |
.transform() | 设置当前元素的 transform 属性。 |
.transformOrigin() | 设置当前元素的 transform-origin 属性。 |
.mutation() | 初始化当前元素的组件、及子元素的组件。 |
$$.showOverlay() | 显示遮罩层。可以传入一个整数参数,表示遮罩层的 z-index 样式,默认为 2000. |
$$.hideOverlay() | 隐藏遮罩层。 如果调用了多次 $$.showOverlay() 来显示遮罩层,则也需要调用相同次数的 $$.hideOverlay() 才能隐藏遮罩层。可以通过传入参数 true 来强制隐藏遮罩层。 |
$$.lockScreen() | 锁定屏幕。 |
$$.unlockScreen() | 解锁屏幕。 如果调用了多次 $$.lockScreen() 来显示遮罩层,则也需要调用相同次数的 $$.unlockScreen() 才能隐藏遮罩层。可以通过传入参数 true 来强制隐藏遮罩层。 |
$$.throttle() | 函数节流。 第一个参数是执行的函数,第二个参数是延迟时间。 |
$$.guid() | 生成一个全局唯一的 ID。 可以传入一个参数。当该参数值对应的 guid 不存在时,会生成一个新的 guid,并返回;当该参数对应的 guid 已存在,则直接返回已有 guid。 |
主题色
主色
强调色