jQuery既然是模仿的數(shù)組結(jié)構(gòu),那么肯定會實現(xiàn)一套類數(shù)組的處理方法,比如常見的棧與隊列操作push、pop、shift、unshift、求和、遍歷循環(huán)each、排序及篩選等一系的擴展方法。
jQuery對象棧是一個便于Dom的查找,提供的一系列方法,jQuery可以是集合元素,那么我們怎么快速的找到集合中對應(yīng)的目標元素呢?
jQuery提供了.get()、:index()、 :lt()、:gt()、:even()及 :odd()這類索引值相關(guān)的選擇器,他們的作用可以過濾他們前面的匹配表達式的集合元素,篩選的依據(jù)就是這個元素在原先匹配集合中的順序。
我們來分別看一下這幾個選擇器的實現(xiàn)原理:
get方法--是通過檢索匹配jQuery對象得到對應(yīng)的DOM元素,如下代碼實現(xiàn):
get: function(num) { return num != null ? // Return just the one element from the set (num < 0 ? this[num + this.length] : this[num]) : // Return all the elements in a clean array slice.call(this); }
原理很簡單,因為jQuery查詢出來的是一個數(shù)組的DOM集合,所以就可以按照數(shù)組的方法通過下標的索引取值,當然如果num的值超出范圍,比如小于元素數(shù)量的負數(shù)或等于或大于元素的數(shù)量的數(shù),那么它將返回undefined。 假設(shè)我們頁面上有一個簡單的無序列表,如下代碼:
<ul> <li id="foo">foo</li> <li id="bar">bar</li> </ul>
如果指定了index參數(shù),.get()則會獲取單個元素,如下代碼:
console.log( $( "li" ).get( 0 ) );
由于索引 index 是以 0 開始計數(shù)的,所以上面代碼返回了第一個列表項<li id="foo">foo</li>
。
然而,這種語法缺少某些 .get() 所具有的附加功能,比如可以指定索引值為負值:
console.log( $( "li" ).get(-1) );
負的索引值表示從匹配的集合中從末尾開始倒數(shù),所以上面這個例子將會返回列表中最后一項:<li id="bar">bar</li>
。
由于是數(shù)組的關(guān)系,所以我們有幾個快速方法,比如頭跟尾的取值:
first: function() { return this.eq( 0 ); }, last: function() { return this.eq(-1); },
請驗證,完成請求
由于請求次數(shù)過多,請先驗證,完成再次請求
打開微信掃碼自動綁定
綁定后可得到
使用 Ctrl+D 可將課程添加到書簽
舉報