我有這個下拉列表屬性name
和id
定義,我也調用一個函數。如何使用javascript函數通過ID對選擇元素進行排序?
<select id="myid" name="myid" onClick="sortlist(this.id)">
<option value="volvo">b</option>
<option value="saab">c</option>
<option value="mercedes">a</option>
<option value="audi">d</option>
<option value="audi">s</option>
<option value="audi">f</option>
</select>
我想按字母順序排序它,當用戶點擊(或沒有)和我發現這個算法
function sortlist(selElem) {
var tmpAry = new Array();
for (var i=0;i<selElem.options.length;i++) {
tmpAry[i] = new Array();
tmpAry[i][0] = selElem.options[i].text;
tmpAry[i][1] = selElem.options[i].value;
}
tmpAry.sort();
while (selElem.options.length > 0) {
selElem.options[0] = null;
}
for (var i=0;i<tmpAry.length;i++) {
var op = new Option(tmpAry[i][0], tmpAry[i][1]);
selElem.options[i] = op;
}
return;
}
我通過元素id
運行,因爲我想用同樣的功能其他下拉列表,但這是行不通的。
你可以請我睜開眼睛,我做錯了什麼?
檢查的jsfiddle這裏:http://jsfiddle.net/u5YZp/
謝謝!這解決了問題。我雖然是「this.id」。我會接受這個,因爲我可以保留我的功能。 –
嗨,我的列表已排序,但它總是選擇它的第一個元素,即使我選擇其他! :爲什麼? –
我想每次當你改變時,它再次排序,看看這個jsfiddle。 http://jsfiddle.net/u5YZp/6/ –