1. 程式人生 > >簡單實現jQuery的一個API

簡單實現jQuery的一個API

先拋JS程式碼: window.jquery = function (NodeOrSelector){ let nodes = {} ; if (typeof NodeOrSelector === 'string'){ let temp = document.querySelectorAll(NodeOrSelector) for (let i=0;i<temp.length;i++){ nodes[i] = temp[i] } nodes.length = temp.length; }else if(NodeOrSelector instanceof Node){ nodes = { 0:NodeOrSelector, length:1} } nodes.addClass = function(classes){ for(let i = 0;i<nodes.length;i++){ nodes[i].classList.add(classes) } } nodes.setText = function(text){ for(let i=0;i<nodes.length;i++){ nodes[i].textContent = text; } } return nodes; } window.$ = jquery; var $div = $('div') $div.addClass('red') // 可將所有 div 的 class 新增一個 red $div.setText('hi') // 可將所有 div 的 textContent 變為 hi 程式碼實現兩個功能,1.給標籤新增一個class屬性,2.更改標籤裡面的文字; 程式碼分析:      1.在window上生成一個jQuery的名稱空間    2. 根據判斷傳入的值的型別用不同的方法把獲取到的元素放入偽陣列nodes;    3.給nodes新增addClass屬性,這個屬性的功能是用for迴圈把獲取到的所有元素上新增統一的class屬性;//  或者傳入陣列用classes.forEach(function(){})來指定新增class;    4.setText屬性,傳入一個字串等,讓獲取元素的textContent改成傳入的文字,同樣用for迴圈來實現;//  加不同文字方法同上    5.在window上生成一個$來代表jQuery,方便操作和使用,這樣我們就做出了“jQuery的兩個功能”。