在DOM操作中,有時候我們需要對同一個標簽的全部元素進行統一操作。在JavaScript中,我們往往都是先獲取元素的長度,然後使用循環語句來訪問每一個元素,代碼相對復雜。而在jQuery中,我們可以使用each()方法來輕松實現元素的遍歷操作。
語法:
$().each(callback)
說明:
參數callback是一個function函數。該函數可以接受一個形參index,此形參為遍歷元素的序號(從0開始)。如果需要訪問元素中的屬性,可以借助形參index,然後配合this關鍵字來實現元素屬性的獲取和設置。
each()方法完整語法如下:
$().each(function(index){
……
})
舉例:
在線測試
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script type="text/javascript" src="../App_js/jquery-1.12.0.min.js"></script>
<script type="text/javascript">
$(function () {
$("#btn").click(function () {
$("li").each(function (index) {
var txt = "這是第" + (index + 1) + "個li元素";
$(this).text(txt);
});
});
})
</script>
</head>
<body>
<ul>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
<input id="btn" type="button" value="添加內容" />
</body>
</html>
在浏覽器預覽效果如下:
當我們點擊“添加內容”按鈕之後,預覽效果如下:
分析:
在each()方法中,index是一個形參。小伙伴們就會問了,為什麼這個function函數有形參,卻沒有對應實參呢?其實index可以說是一個系統形參,你只需要調用即可,不需要用相應的實參來一一對應,這個有點類似於JavaScript的事件對象event。況且在JavaScript中,形參個數和實參個數是可以不相等的。這些也是非常重要的理論知識,我們在“JavaScript進階教程”再給大家詳細介紹,這裡了解一下即可。
舉例:
在線測試
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script type="text/javascript" src="../App_js/jquery-1.12.0.min.js"></script>
<script type="text/javascript">
$(function () {
$("#btn").click(function () {
//定義一個數組
var arr = new Array("HTML", "CSS", "JavaScript", "jQuery", "canvas");
//使用each()將數組元素內容一一賦值給對應的li元素
$("li").each(function (index) {
var txt = arr[index];
$(this).text(txt);
});
});
})
</script>
</head>
<body>
<ul>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
<input id="btn" type="button" value="添加內容" />
</body>
</html>
在浏覽器預覽效果如下:
當我們點擊“添加內容”按鈕之後,預覽效果如下: