我定义了这个下拉列表,其中定义了属性 name
和 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/
最佳答案
这就是你必须这样做的方式。 JSFiddle .
您需要传递 elem,而不是 id,并且您的函数应该是全局的
<select id="myid" name="myid" onClick="sortlist(this)">
关于javascript - 如何使用javascript函数按ID对选择的元素进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20738095/