MDUI 內(nèi)置了一個(gè)輕量的 JavaScript 工具庫(kù),它擁有和 jQuery 類(lèi)似的 api 和 jQuery 風(fēng)格的鏈?zhǔn)秸{(diào)用,但體積僅為 jQuery 的八分之一。
你可以通過(guò) mdui.JQ 來(lái)調(diào)用該庫(kù),但最好把 mdui.JQ 存儲(chǔ)到一個(gè)簡(jiǎn)短的變量中以方便調(diào)用,為了避免和其他庫(kù)沖突,推薦使用 $$。
var $$ = mdui.JQ;
在后面的文檔中,都使用 $$ 來(lái)表示 mdui.JQ。
該方法有多種用法:
可以傳入一個(gè) CSS 選擇器作為參數(shù),返回包含匹配元素的 JQ 對(duì)象。該方法是通過(guò) querySelectorAll 實(shí)現(xiàn)的。
$$('.mdui-table')
可以傳入 DOM 元素、DOM 元素?cái)?shù)組、NodeList、JQ 對(duì)象,返回包含指定元素的 JQ 對(duì)象。
$$(document)
可以傳入 HTML 字符串,返回包含根據(jù) HTML 創(chuàng)建的 DOM 的 JQ 對(duì)象。
$$('<div id="wrapper"><span id="inner"></span></div>')
可以傳入一個(gè)函數(shù),在 DOM 加載完畢后會(huì)調(diào)用該函數(shù)。
$$(function () { console.log('DOM Loaded') })
如果只傳入一個(gè)對(duì)象,該對(duì)象中的屬性將合并到 JQ 對(duì)象中,相當(dāng)于在 JQ 的命名空間下添加新的功能。
$$.extend({
customFunc: function () {} }) // 然后就可以這樣調(diào)用自定義方法了 $$.customFunc()
如果傳入了兩個(gè)或更多個(gè)對(duì)象,所有對(duì)象的屬性都添加到第一個(gè)對(duì)象,并返回合并后的對(duì)象。
var object = $$.extend(
{ key1: val1 }, { key2: val2 }, { key3: val3 } ); // 此時(shí)第一個(gè)對(duì)象和返回值都是 { key1: val1, key2: val2, key3: val3 }
在 JQ 的原型鏈上擴(kuò)展方法。
$$.fn.extend({
customFunc: function () {} }) // 然后就可以這樣使用擴(kuò)展的方法了 $$(document).customFunc()
將數(shù)組或?qū)ο笮蛄谢?/p>
$$.param({width:1680, height:1050})
// width=1680&height=1050 $$.param({foo: {one: 1,two: 2 } })
// foo[one]=1&foo[two]=2 $$.param({ids:[1,2,3] })
// ids[]=1&ids[]=2&ids[]=3
遍歷數(shù)組或?qū)ο?/p>
$$.each(['a', 'b', 'c'], function (i, value) {
console.log(i + ':' + value); }) // 結(jié)果: // 0:a // 1:b // 2:c
$$.each({'name': 'mdui', 'lang': 'zh'}, function (i, value) {
console.log(i + ':' + value); }) // 結(jié)果 // name:mdui // lang:zh
合并兩個(gè)數(shù)組,合并的結(jié)果會(huì)替換第一個(gè)數(shù)組的內(nèi)容,并返回合并的結(jié)果。
var first = ['a', 'b', 'c']; var second = ['c', 'd', 'e']; var result = $$.merge(first, second);
console.log(first); // ['a', 'b', 'c', 'c', 'd', 'e'] console.log(result); // ['a', 'b', 'c', 'c', 'd', 'e']
刪除數(shù)組中的重復(fù)元素??梢允?nbsp;DOM 元素?cái)?shù)組、字符串?dāng)?shù)組、數(shù)字?jǐn)?shù)組。返回去重后的數(shù)組。
var result = $$.unique([1,2,12,3,2,1,2,1,1,1,1]);
console.log(result); // [1, 2, 12, 3]
遍歷數(shù)組或?qū)ο螅ㄟ^(guò)函數(shù)返回一個(gè)新的數(shù)組或?qū)ο?,null 和 undefined 將被過(guò)濾掉。
var result = $$.map(['a', 'b', 'c'], function (value, key) {
return i + value; }); console.log(result); // ['0a', '1b', '2c']
判斷父節(jié)點(diǎn)是否包含子節(jié)點(diǎn),返回布爾值。
$$.contains(document, document.body); // true
$$.contains(document.body, document); // false
根據(jù) CSS 選擇器、DOM 元素、或 JQ 對(duì)象來(lái)檢測(cè)匹配的元素集合,至少有一個(gè)元素匹配則返回 true,否則返回 false。
$$('.box').is('.box'); // true
$$('.box').is('.boxss'); // false
$$('.box').is($$('.box')[0]); // true
返回 JQ 對(duì)象中元素的數(shù)量。
$$('body').length; // 1
遍歷一個(gè) JQ 對(duì)象,為每一個(gè)匹配元素執(zhí)行一個(gè)函數(shù)。如果函數(shù)返回 false,則結(jié)束遍歷。
函數(shù)的第一個(gè)參數(shù)為元素的索引號(hào),第二個(gè)參數(shù)為當(dāng)前元素。函數(shù)的 this 關(guān)鍵字指向當(dāng)前元素。
$$('img').each(function(i, element) {
this.src = 'test' + i + '.jpg'; });
遍歷一個(gè) JQ 對(duì)象,為對(duì)象的每個(gè)元素都調(diào)用一個(gè)函數(shù),生成一個(gè)包含函數(shù)返回值的新的 JQ 對(duì)象。null 和 undefined 會(huì)被過(guò)濾掉。
函數(shù)的第一個(gè)參數(shù)為元素的索引號(hào),第二個(gè)參數(shù)為當(dāng)前元素。函數(shù)的 this 關(guān)鍵字指向當(dāng)前元素。
var result = $$('input.checked').map(function (i, element) {
return $$(this).val();
}); // result 為匹配元素的值組成的 JQ 對(duì)象
返回 JQ 對(duì)象中指定索引號(hào)的元素的 JQ 對(duì)象。
$$('div').eq(0); // 返回第一個(gè)元素的 JQ 對(duì)象
$$('div').eq(-1); // 返回最后一個(gè)元素的 JQ 對(duì)象
$$('div').eq(-2); // 返回倒數(shù)第二個(gè)元素的 JQ 對(duì)象
返回 JQ 對(duì)象中第一個(gè)元素的 JQ 對(duì)象。
$$('div').first(); // 返回第一個(gè) div 的 JQ 對(duì)象
返回 JQ 對(duì)象中最后一個(gè)元素的 JQ 對(duì)象。
$$('div').last(); // 返回最后一個(gè) div 的 JQ 對(duì)象
返回 JQ 對(duì)象中指定索引號(hào)的 DOM 元素。若沒(méi)有指定索引號(hào),則返回 JQ 對(duì)象中所有 DOM 元素組成的數(shù)組。
$$('div').get(); // 返回所有 div 元素組成的數(shù)組
$$('div').get(0); // 返回第一個(gè) div 元素
$$('div').get(-1); // 返回最后一個(gè) div 元素
如果沒(méi)有傳入?yún)?shù),則返回 JQ 對(duì)象中第一個(gè)元素相對(duì)于同輩元素的索引值。
如果傳入了一個(gè) CSS 選擇器作為參數(shù),則返回 JQ 對(duì)象中第一個(gè)元素相對(duì)與 CSS 選擇器匹配元素的索引值。
如果傳入了一個(gè) DOM 元素,則返回該 DOM 元素在 JQ 對(duì)象中的索引值。
<div id="child">
<div id="child1"></div>
<div id="child2"></div>
<div id="child3"></div>
<div id="child4"></div>
</div>
$$('#child3').index(); // 2
$$('#child3').index('#child div'); // 2
$$('#child div').index($$('#child3').get(0); // 2
返回一個(gè) JQ 對(duì)象的子集。
子集為從 start 開(kāi)始的元素。如果傳入了 end 參數(shù),則提取從 start 到不包含 end 位置的元素。
$$('div').slice(3); // 返回對(duì)象中第三個(gè)(包含第三個(gè))之后的所有元素
$$('div').slice(3, 5); // 返回對(duì)象中第三個(gè)到第五個(gè)(包含第三個(gè),不包含第五個(gè))之間的元素
從 JQ 對(duì)象中篩選出與指定表達(dá)式匹配的元素的 JQ 對(duì)象。參數(shù)可以是 CSS 選擇器、JQ 對(duì)象、DOM 元素、函數(shù)。
參數(shù)為函數(shù)時(shí),函數(shù)的第一個(gè)參數(shù)為當(dāng)前元素在 JQ 對(duì)象中的索引號(hào),第二個(gè)參數(shù)為當(dāng)前元素,this 關(guān)鍵字指向當(dāng)前元素。函數(shù)返回 true 時(shí),該元素會(huì)被保留,返回 false 時(shí),該元素會(huì)被去除。
// 篩選出所有含 .box 類(lèi)的 div 元素的 JQ 對(duì)象 $$('div').filter('.box');
// 篩選出所有已選中選項(xiàng)的 JQ 對(duì)象 $$('#select option').filter(function (idx, element) {
return element.selected; });
從 JQ 對(duì)象中篩選出與指定表達(dá)式不匹配的元素的 JQ 對(duì)象。參數(shù)可以是 CSS 選擇器、JQ 對(duì)象、DOM 元素、函數(shù)。
參數(shù)為函數(shù)時(shí),函數(shù)的第一個(gè)參數(shù)為當(dāng)前元素在 JQ 對(duì)象中的索引號(hào),第二個(gè)參數(shù)為當(dāng)前元素,this 關(guān)鍵字指向當(dāng)前元素。函數(shù)返回 true 時(shí),該元素會(huì)被去除,返回 false 時(shí),該元素會(huì)被保留。
// 篩選出所有不含 .box 類(lèi)的 div 元素的 JQ 對(duì)象 $$('div').filter('.box');
// 篩選出所有未選中選項(xiàng)的 JQ 對(duì)象 $$('#select option').filter(function (idx, element) {
return element.selected; });
判斷 JQ 對(duì)象中的第一個(gè)元素是否含有指定 CSS 類(lèi)。
$$('div').hasClass('item')
為元素添加 CSS 類(lèi),多個(gè)類(lèi)名之間可以用空格分隔。
$$('div').addClass('item')
$$('div').addClass('item1 item2')
移除元素上的 CSS 類(lèi),多個(gè)類(lèi)名之間可以用空格分隔。
$$('div').removeClass('item')
$$('div').removeClass('item1 item2')
元素上的 CSS 類(lèi),有則刪除,無(wú)則添加。多個(gè)類(lèi)名之間可以用空格分隔。
$$('div').toggleClass('item')
$$('div').toggleClass('item1 item2')
獲取或設(shè)置選中元素的屬性值。
// 獲取第一個(gè)元素的屬性值 $$('input[type="checkbox"]').prop('checked');
// 設(shè)置所有選中元素的屬性值 $$('input[type="checkbox"]').prop('checked', true);
// 同時(shí)設(shè)置元素的多個(gè)屬性值 $$('input').prop({
checked: false, disabled: true })
刪除選中元素指定的屬性值。
$$('input').removeProp('disabled')
獲取或設(shè)置選中元素的屬性值。
// 獲取第一個(gè)元素的屬性值 $$('div').attr('username');
// 設(shè)置所有選中元素的屬性值 $$('div').attr('username', 'mdui');
// 同時(shí)設(shè)置元素的多個(gè)屬性值 $$('div').prop({
username: 'mdui', lastname: 'test' })
刪除選中元素的指定屬性值。
$$('div').removeAttr('username')
獲取或設(shè)置選中元素的值。
// 獲取選中的第一個(gè)元素的值 $$('#input').val()
// 設(shè)置選中元素的值 $$('#input').val('input value')
獲取或設(shè)置選中元素的文本內(nèi)容。
// 獲取選中的第一個(gè)元素的文本內(nèi)容 $$('#box').text()
// 設(shè)置選中元素的文本內(nèi)容 $$('#box').text('text content')
獲取或設(shè)置選中元素的 HTML 內(nèi)容。
// 獲取選中的第一個(gè)元素的 HTML 內(nèi)容 $$('#box').html()
// 設(shè)置選中元素的 HTML $$('#box').html('html content')
在 DOM 元素上讀取或存儲(chǔ)數(shù)據(jù)。
var dom = document.getElementById('box'); // 在 DOM 元素上存儲(chǔ)一個(gè)字符串 $$.data(dom, 'key', 'value');
// 在 DOM 上存儲(chǔ)一個(gè)對(duì)象 $$.data(dom, 'obj', {test: 'test'});
// 在 DOM 上同時(shí)存儲(chǔ)多個(gè)數(shù)據(jù) $$.data(dom, {
key1: 'value1', key2: { test: 'test' } }); // 獲取 DOM 上存儲(chǔ)的所有數(shù)據(jù) $$.data(dom);
刪除 DOM 上存儲(chǔ)的數(shù)據(jù)。
// 刪除 DOM 上存儲(chǔ)的鍵名為 key 的數(shù)據(jù)
$$.removeData(dom, 'key');
在當(dāng)前 JQ 對(duì)象的元素上存儲(chǔ)數(shù)據(jù)。
// 在 .box 元素上存儲(chǔ)一個(gè)字符串 $$('.box').data('key', 'value');
// 在 .box 元素上存儲(chǔ)一個(gè)對(duì)象 $$('.box').data('obj', {
test: 'test' }); // 在 .box 元素上同時(shí)存儲(chǔ)多個(gè)數(shù)據(jù) $$('.box').data({
key1: 'value1', key2: { test: 'test' } }); // 獲取 .box 上存儲(chǔ)的所有數(shù)據(jù) $$('.box').data();
刪除 JQ 對(duì)象的元素上存儲(chǔ)的數(shù)據(jù)。
// 刪除 .box 元素上存儲(chǔ)的鍵名為 key 的數(shù)據(jù)
$$('.box').removeData('key');
獲取 JQ 對(duì)象中的第一個(gè)元素的樣式值,或者設(shè)置每一個(gè)元素的樣式。
// 獲取元素樣式值 $$('#box').css('color')
// 設(shè)置元素的樣式值 $$('#box').css('color', 'red')
// 同時(shí)設(shè)置多個(gè)樣式值 $$('#box').css({
'color': 'red', 'background-color': 'white' })
如果沒(méi)有傳入?yún)?shù),則獲取 JQ 對(duì)象中第一個(gè)元素的寬度。
如果傳入了參數(shù),則設(shè)置 JQ 對(duì)象中所有元素的寬度,如果參數(shù)是個(gè)數(shù)字或數(shù)字字符串,會(huì)自動(dòng)添加 px 作為單位。
該方法獲取的值默認(rèn)不包含內(nèi)邊距和外邊距,當(dāng) box-sizing:border-box 時(shí),會(huì)包含內(nèi)邊距。
$$('.box').width();
$$('.box').width(10);
$$('.box').width('20%')
如果沒(méi)有傳入?yún)?shù),則獲取 JQ 對(duì)象中第一個(gè)元素的高度。
如果傳入了參數(shù),則設(shè)置 JQ 對(duì)象中所有元素的高度,如果參數(shù)是個(gè)數(shù)字或數(shù)字字符串,會(huì)自動(dòng)添加 px 作為單位。
該方法獲取的值默認(rèn)不包含內(nèi)邊距和外邊距,當(dāng) box-sizing:border-box 時(shí),會(huì)包含內(nèi)邊距。
$$('.box').height();
$$('.box').height(10);
$$('.box').height('20%');
獲取元素的寬度,包含內(nèi)邊距。
$$('.box').innerWidth();
獲取元素的高度,包含內(nèi)邊距。
$$('.box').innerHeight();
隱藏 JQ 對(duì)象中的所有元素。
$$('.box').hide();
恢復(fù) JQ 對(duì)象中的所有元素的顯示狀態(tài)。
$$('.box').show();
切換 JQ 對(duì)象中所有元素的顯示狀態(tài)。
$$('.box').toggle();
獲取元素相對(duì)于 document 的偏移,以及元素的寬度和高度。
$$('.box').offset();
// { // top: 20, // left: 30, // width: 200, // height: 100 // }
返回 JQ 對(duì)象中第一個(gè)元素的用于定位的父元素的 JQ 對(duì)象。即父元素中第一個(gè) position 為 relative 或 absolute 的元素。
$$('.box').offsetParent()
獲取元素相對(duì)于父元素的偏移,以及寬度和高度。
$$('.box').position();
// { // top: 20, // left: 30, // width: 100, // height: 200 // }
根據(jù) CSS 選擇器找到指定的后代節(jié)點(diǎn)的集合。
// 找到 #box 的后代節(jié)點(diǎn)中,包含 .box 的節(jié)點(diǎn)集合
$$('#box').find('.box')
獲取匹配元素的直接子元素,可以使用 CSS 選擇器作為參數(shù)進(jìn)行過(guò)濾。
參數(shù)可以是 CSS 選擇器、JQ 對(duì)象、DOM 元素、DOM 元素?cái)?shù)組、NodeList。
// 找到 #box 的所有直接子元素 $$('#box').children()
// 找到 #box 的所有直接子元素中,包含 .box 的元素集合 $$('#box').children('.box')
對(duì)匹配元素的子元素,按傳入的參數(shù)進(jìn)行過(guò)濾,返回過(guò)濾后的元素的 JQ 對(duì)象。
傳入的參數(shù)可以是 CSS 選擇器、JQ 對(duì)象、DOM 元素、DOM 元素?cái)?shù)組、NodeList。
// 給含有 ul 的 li 加上背景色
$$('li').has('ul').css('background-color', 'red');
返回匹配的直接父元素的 JQ 對(duì)象。
如果沒(méi)有傳入?yún)?shù),則直接返回直接父元素的 JQ 對(duì)象。如果傳入了參數(shù),僅返回和參數(shù)匹配的直接父元素的 JQ 對(duì)象。
參數(shù)可以是 CSS 選擇器、JQ 對(duì)象、DOM 元素、DOM 元素?cái)?shù)組、NodeList。
// 返回 .box 元素的直接父元素 $$('.box').parent();
// 返回 .box 元素的直接父元素中含有 .parent 類(lèi)的元素 $$('.box').parent('.parent');
返回匹配的所有祖先元素的 JQ 對(duì)象。
傳入的參數(shù)可以是 CSS 選擇器、JQ 對(duì)象、DOM 元素、DOM 元素?cái)?shù)組、NodeList。
// 返回 span 元素的所有祖先元素 $$('span').parents();
// 返回 span 元素的所有是 p 元素的祖先元素 $$('span').parents('p');
查找當(dāng)前元素的所有父輩元素,直到遇到匹配的那個(gè)元素為止。
返回的 JQ 對(duì)象里包含了下面所有找到的父輩元素,但不包含參數(shù)匹配到的元素。
// 查找 .item 元素的所有父輩元素,直到遇到 .parent 元素
$$('.item').parentsUntil('.parent');
獲取當(dāng)前元素的前一個(gè)同輩元素的 JQ 對(duì)象??梢允褂脜?shù)進(jìn)行過(guò)濾。
參數(shù)可以是 CSS 選擇器、JQ 對(duì)象、DOM 元素、DOM 元素?cái)?shù)組、NodeList。
// 返回 .box 元素的前一個(gè)元素 $$('.box').prev();
// 獲取 .box 元素的前一個(gè) div 元素 $$('.box').prev('div');
獲取當(dāng)前元素前面的所有同輩元素的 JQ 對(duì)象??梢允褂脜?shù)進(jìn)行過(guò)濾。
參數(shù)可以是 CSS 選擇器、JQ 對(duì)象、DOM 元素、DOM 元素?cái)?shù)組、NodeList。
// 返回 .box 元素前面的所有同輩元素
$$('.box').prevAll();
// 返回 .box 元素前面的所有含 .selected 的同輩元素
$$('.box').prevAll('.selected');
獲取當(dāng)前元素前面所有的同輩元素,直到遇到匹配元素,不包含匹配元素。
參數(shù)可以是 CSS 選擇器、JQ 對(duì)象、DOM 元素、DOM 元素?cái)?shù)組、NodeList。
// 返回 .box 元素前所有的同輩元素,直到遇到 .until 元素
$$('.box').prevUntil('.until');
獲取當(dāng)前元素的后一個(gè)同輩元素的 JQ 對(duì)象。可以使用參數(shù)進(jìn)行過(guò)濾。
參數(shù)可以是 CSS 選擇器、JQ 對(duì)象、DOM 元素、DOM 元素?cái)?shù)組、NodeList。
// 返回 .box 元素的后一個(gè)元素 $$('.box').next();
// 獲取 .box 元素的后一個(gè) div 元素 $$('.box').next('div');
獲取當(dāng)前元素后面的所有同輩元素的 JQ 對(duì)象??梢允褂脜?shù)進(jìn)行過(guò)濾。
參數(shù)可以是 CSS 選擇器、JQ 對(duì)象、DOM 元素、DOM 元素?cái)?shù)組、NodeList。
// 返回 .box 元素后面的所有同輩元素 $$('.box').nextAll();
// 返回 .box 元素后面的所有含 .selected 的同輩元素 $$('.box').nextAll('.selected');
獲取當(dāng)前元素后面所有的同輩元素,直到遇到匹配元素,不包含匹配元素。
參數(shù)可以是 CSS 選擇器、JQ 對(duì)象、DOM 元素、DOM 元素?cái)?shù)組、NodeList。
// 返回 .box 元素后所有的同輩元素,直到遇到 .until 元素
$$('.box').nextUntil('.until');
從當(dāng)前元素向上逐級(jí)匹配,返回最先匹配到的元素。
參數(shù)可以是 CSS 選擇器、JQ 對(duì)象、DOM 元素、DOM 元素?cái)?shù)組、NodeList。
// 獲取 .box 元素的父元素中最近的 .parent 元素
$$('.box').closest('.parent');
獲取當(dāng)前元素的所有同輩元素。可以使用參數(shù)進(jìn)行過(guò)濾。
參數(shù)可以是 CSS 選擇器、JQ 對(duì)象、DOM 元素、DOM 元素?cái)?shù)組、NodeList。
// 獲取 .box 元素的所有同輩元素
$$('.box').siblings();
// 獲取 .box 元素的所有同輩元素中含 .selected 的元素
$$('.box').siblings('.selected');
添加元素到當(dāng)前 JQ 對(duì)象中。
參數(shù)可以是 CSS 選擇器、JQ 對(duì)象、DOM 元素、DOM 元素?cái)?shù)組、NodeList。
// 把含 .selected 的元素添加到當(dāng)前 JQ 對(duì)象中
$$('.box').add('.selected');
從 DOM 中移除選中元素的所有子節(jié)點(diǎn)。
$$('.box').empty();
從 DOM 中移除所有選中的元素。
$$('.box').remove();
在選中元素內(nèi)部的前面插入指定內(nèi)容。
傳入的參數(shù)可以是 字符串、HTML、JQ 對(duì)象、DOM 元素、DOM 元素?cái)?shù)組、NodeList。
// HTML 代碼 <p>I would like to say: </p> // js 代碼 $$('p').prepend('<b>Hello</b>');
// 結(jié)果 [ <p><b>Hello</b>I would like to say: </p> ]
把選中元素添加到另一個(gè)指定元素的內(nèi)部的前面。
傳入的參數(shù)可以是 CSS 選擇器、JQ 對(duì)象、DOM 元素、DOM 元素?cái)?shù)組、NodeList。
// HTML 代碼
<p>I would like to say: </p>
// js 代碼
$$('<p>Hello</p>').prependTo('p');
// 結(jié)果
[ <p><p>Hello</p>I would like to say: </p> ]
在選中元素內(nèi)部的后面插入指定內(nèi)容。
傳入的參數(shù)可以是 字符串、HTML、JQ 對(duì)象、DOM 元素、DOM 元素?cái)?shù)組、NodeList。
// HTML 代碼 <p>I would like to say: </p> // js 代碼 $$('p').append('<b>Hello</b>');
// 結(jié)果 [ <p>I would like to say: <b>Hello</b></p> ]
把選中元素插入到另一個(gè)指定元素的內(nèi)部的后面。
傳入的參數(shù)可以是 CSS 選擇器、JQ 對(duì)象、DOM 元素、DOM 元素?cái)?shù)組、NodeList。
// HTML 代碼 <p>I would like to say: </p> // js 代碼 $$('<p>Hello</p>').appendTo('p')
// 結(jié)果 [ <p>I would like to say: <p>Hello</p></p> ]
在選中元素的后面插入內(nèi)容。
傳入的參數(shù)可以是 CSS 選擇器、JQ 對(duì)象、DOM 元素、DOM 元素?cái)?shù)組、NodeList、HTML 字符串
// HTML 代碼 <p>I would like to say: </p> // js 代碼 $$('p').after('<b>Hello</b>')
// 結(jié)果 [ <p>I would like to say: </p><b>Hello</b> ]
把選中元素插入到指定元素的后面。
傳入的參數(shù)可以是 CSS 選擇器、JQ 對(duì)象、DOM 元素、DOM 元素?cái)?shù)組、NodeList、HTML 字符串
// HTML 代碼
<p>I would like to say: </p>
// js 代碼
$$('<b>Hello</b>').insertAfter('p');
// 結(jié)果
[ <p>I would like to say: </p><b>Hello</b> ]
在選中元素前面插入內(nèi)容。
傳入的參數(shù)可以是 CSS 選擇器、JQ 對(duì)象、DOM 元素、DOM 元素?cái)?shù)組、NodeList、HTML 字符串
// HTML <p>I would like to say: </p> // js 代碼 $$('p').before('<b>Hello</b>');
// 結(jié)果 [ <b>Hello</b><p>I would like to say: </p> ]
把選中元素插入到指定元素前面。
傳入的參數(shù)可以是 CSS 選擇器、JQ 對(duì)象、DOM 元素、DOM 元素?cái)?shù)組、NodeList、HTML 字符串
// HTML <p>I would like to say: </p> // js 代碼 $$('p').insertBefore('<b>Hello</b>');
// 結(jié)果 [ <p>I would like to say: </p><b>Hello</b> ]
用新元素替換選中元素。
傳入的參數(shù)可以是 CSS 選擇器、JQ 對(duì)象、DOM 元素、DOM 元素?cái)?shù)組、NodeList、HTML 字符串
$$('.box').replaceWith('<p>Hello</p>');
// 用 <p>Hello</p> 替換所有的 .box 元素
用選中元素替換指定元素。
傳入的參數(shù)可以是 CSS 選擇器、JQ 對(duì)象、DOM 元素、DOM 元素?cái)?shù)組、NodeList
$$('.new').replaceAll('.box');
// 用 .new 元素替換所有 .box 元素
通過(guò)深度克隆來(lái)復(fù)制集合中的所有元素。
通過(guò)原生 cloneNode 方法深度克隆來(lái)復(fù)制集合中的所有元素。此方法不會(huì)有數(shù)據(jù)和事件處理程序復(fù)制到新的元素。這點(diǎn)和jquery中利用一個(gè)參數(shù)來(lái)確定是否復(fù)制數(shù)據(jù)和事件處理不相同。
$$('body').append($$("#box").clone())
把表單元素的值組合成由 name 和 value 的鍵值對(duì)組成的數(shù)組。
$$('form').serializeArray();
// [{"name":"golang","value":"456"},{"name":"name","value":"mdui"},{"name":"password","value":""}]
將表單元素?cái)?shù)組或者對(duì)象序列化。
$$('form').serialize();
// golang=456&name=mdui&password=
為每個(gè)匹配元素的特定事件綁定事件處理函數(shù)。
// 綁定點(diǎn)擊事件 $$('.box').on('click', function (e) {
console.log('點(diǎn)擊了 .box 元素'); }); // 綁定多個(gè)事件 $$('.box').on('click focus', function (e) {
console.log('click 和 focus 事件都會(huì)觸發(fā)該函數(shù)'); }); // 事件委托 $$(document).on('click', '.box', function (e) {
console.log('點(diǎn)擊 .box 時(shí)會(huì)觸發(fā)該函數(shù)'); }); // 同時(shí)綁定多個(gè)事件和事件處理函數(shù) $$('.box').on({
'click': function (e) { console.log('觸發(fā)了 click 事件'); }, 'focus': function (e) { console.log('觸發(fā)了 focus 事件'); } }); // 傳入事件參數(shù) $$('.box').on('click', {key1: 'value1', key2: 'value2'}, function (e) {
console.log('點(diǎn)擊了 .box 元素,并為事件處理函數(shù)傳入了參數(shù)'); });
為每個(gè)匹配元素的特定事件綁定事件處理函數(shù)。但事件只會(huì)觸發(fā)一次。
該方法的用法和 .on() 相同,所以不再舉例了。
從每個(gè)匹配的元素中解除綁定的事件。
// 解除綁定的指定事件 $$('.box').off('click');
// 同時(shí)解除多個(gè)綁定的事件 $$('.box').off('click focus');
// 解除綁定的指定事件處理函數(shù) $$('.box').off('click', callback); // 解除通過(guò)事件委托綁定的事件 $$(document).off('click', '.box');
// 解除通過(guò)事件委托綁定的指定事件處理函數(shù) $$(document).off('click', '.box', callback);
觸發(fā)指定的事件
// 觸發(fā)指定的事件
$$('.box').trigger('click');
// 觸發(fā)事件時(shí)傳入?yún)?shù)
$$('.box').trigger('click', {key1: 'value1', key2: 'value2'});
DOM 加載完畢,DOMContentLoaded 事件觸發(fā)時(shí)觸發(fā)。
$$(document).ready(function () {
console.log('當(dāng)前頁(yè)面 DOM 已加載完畢'); }); // 它還有另一種寫(xiě)法,和 .ready() 方法效果一樣 $$(function () {
console.log('當(dāng)前頁(yè)面 DOM 已加載完畢'); });
重繪當(dāng)前元素。
$$('.box').reflow();
設(shè)置當(dāng)前元素的 transition-duration 屬性。
$$('.box').transition();
在當(dāng)前元素上添加 transitionend 事件回調(diào)。
$$('.box').transitionEnd(function () {
console.log('.box 元素的 transitionend 事件已觸發(fā)');
})
設(shè)置當(dāng)前元素的 transform 屬性。
$$('.box').transform('rotate(90deg)')
設(shè)置當(dāng)前元素的 transform-origin 屬性。
$$('.box').transformOrigin('top center')
顯示遮罩層??梢詡魅胍粋€(gè)整數(shù)參數(shù),表示遮罩層的 z-index 樣式,默認(rèn)為 2000.
$$.showOverlay();
隱藏遮罩層。
如果調(diào)用了多次 $$.showOverlay() 來(lái)顯示遮罩層,則也需要調(diào)用相同次數(shù)的 $$.hideOverlay() 才能隱藏遮罩層??梢酝ㄟ^(guò)傳入?yún)?shù) true 來(lái)強(qiáng)制隱藏遮罩層。
$$.hideOverlay();
鎖定屏幕。
$$.lockScreen();
解鎖屏幕。
如果調(diào)用了多次 $$.lockScreen() 來(lái)顯示遮罩層,則也需要調(diào)用相同次數(shù)的 $$.unlockScreen() 才能隱藏遮罩層??梢酝ㄟ^(guò)傳入?yún)?shù) true 來(lái)強(qiáng)制隱藏遮罩層。
$$.unlockScreen();
函數(shù)節(jié)流。
第一個(gè)參數(shù)是執(zhí)行的函數(shù),第二個(gè)參數(shù)是延遲時(shí)間。
$$.throttle(function () {
console.log('這個(gè)函數(shù)最多 100ms 執(zhí)行一次');
}, 100)
生成一個(gè)全局唯一的 ID。
$$.guid();
更多建議: