起因
在工作中,需要在遍歷的dom中找到第一個並做下操作然后退出遍歷,我首先想到了用each方法,但由於無論是公用的jQuery組件還是公司的fish組件。我都忘記了怎么去退出遍歷,所以就有了這篇帖子。
目的
本文的目的是總結一下無論是數組還是dom,關於他們的遍歷方法。
數組方法(ES5)
Array.prototype.forEach()
語法
array.forEach(callback[, thisArg])
callback函數參數
第一個參數:當前項
第二個參數:當前項的索引
第三個參數:數組本身
thisArg參數
這個參數是可選參數。
主要用於綁定函數內this的作用域,否則你在函數內調用this,this指代全局對象Window(ES3)或者undefined(ES5嚴格模式下)
關於中斷(MDN原話)
沒有辦法中止或者跳出 forEach 循環,除了拋出一個異常。如果你需要這樣,使用forEach()
方法是錯誤的,你可以用一個簡單的循環作為替代。如果您正在測試一個數組里的元素是否符合某條件,且需要返回一個布爾值,那么可使用 Array.every
或 Array.some
。
jQuery方法
語法
.each()
作用
用來遍歷dom
用法
$(dom).each( function(index, Element) ) { do Something... }
參數
第一個參數:當前索引,從0開始
第二個參數:指被當前迭代的元素,與在函數體內的this等價
關於中斷
可以通過返回false以便在函數體內終止循環
for方法
語法
for(var i = 0; i < someArray.length; i++) { doSomething... }
作用
循環
關於中斷
break; 語法可以完成中斷
return; 語法直接報錯(未捕獲的語法錯誤: 非法返回聲明)