我正在學習js/jquery,並在做this練習,按字母順序排列選擇選項。這是解決他們給:試圖瞭解.each()回調,排序選擇選項
<div id="target">
<select>
<option val="a">aaa</option>
<option val="c">ccc</option>
<option val="d">ddd</option>
<option val="b">bbb</option>
</select>
</div>
<script>
var options = {};
$('#target option').each(function(i){
var option = $(this);
options[option.text()] = option;
});
var keys = Object.keys(options).sort();
var select = $('#target select').empty();
$.each(keys, function(i, key){
select.append(options[key]);
});
</script>
是否
i
參數的$.each
回調函數涉及到$('#target option').each(function(i)
的i
參數?如果是這樣,爲什麼從
$('#target option').each(function(i)
中刪除參數不會破壞什麼?什麼是
i
參數在做$.each(keys, function(i, key)
?我只看到該函數中使用的關鍵字。從這裏刪除i
確實會中斷程序。
啊好吧。我顯然不明白回調是什麼。目前爲止只看到了「forEach」。爲了澄清,順序對於回調中的參數而言非常重要,而不是它們被稱爲什麼? – unident77
回調函數是正常函數 - 我們只是稱它們爲回調函數,因爲它們是從另一個函數回調的。因此,你已經知道的有關參數如何與函數調用一起工作的所有信息都可以與回調一起使用。所以'function square(b){return b * b; }'和'function square(x){return x * x; }'完全等效 - 與回調函數相同。 – Amadan