【发布时间】:2013-05-29 12:13:37
【问题描述】:
我有以下脚本按字母顺序对列表的值进行排序,因为此列表会根据网站的语言而变化。
<select style="width:250px" id="list1">
<option value="">Confederation</option> <!--I would like to keep this at the top-->
<option value="40934">Africa (CAF)</option>
<option value="44624">Asia (AFC)</option>
<option value="29521">Europe (UEFA)</option>
<option value="43099">North & Central America (CONCACAF)</option>
<option value="46617">Oceania (OFC)</option>
<option value="38731">South America (CONMEBOL)</option>
</select>
<script>
$("#list1").html($("#list1 option").sort(function (a, b) {
return a.text == b.text ? 0 : a.text < b.text ? -1 : 1
}))
</script>
如你所见,通过脚本后,输出如下:
<select style="width:250px" id="list1">
<option value="40934">Africa (CAF)</option>
<option value="44624">Asia (AFC)</option>
<option value="">Confederation</option> <!-- But it gets sorted also and it ends up in the middle -->
<option value="29521">Europe (UEFA)</option>
<option value="43099">North & Central America (CONCACAF)</option>
<option value="46617">Oceania (OFC)</option>
<option value="38731">South America (CONMEBOL)</option>
</select>
问题是应该是第一个的第一个值也被排序了,所以它最终在列表的中间,看起来很尴尬。
我想修改 javascript 以从排序中排除第一个选项值,但将其保留在顶部。需要考虑的一件事是,这 first 的值为 "",它应该是这样的,因为我有另一个小脚本,它强制用户选择其他任何内容来处理表单。
提前非常感谢!
【问题讨论】:
标签: javascript jquery select option