我有以下脚本,可以按字母顺序对列表的值进行排序,因为该列表根据网站的语言而变化。
如您所见,在脚本执行后,输出内容如下:
问题在于第一个应该排在最前面的值也被排序了,所以它最终出现在列表的中间,看起来很奇怪。
我想修改javascript代码,将第一个选项值从排序中排除,但保持其在顶部。需要考虑的一件事是,这个第一项的值为"",应该保持这样,因为我有另一个小脚本,强制用户选择其他选项才能处理表单。
非常感谢您的帮助!
<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代码,将第一个选项值从排序中排除,但保持其在顶部。需要考虑的一件事是,这个第一项的值为"",应该保持这样,因为我有另一个小脚本,强制用户选择其他选项才能处理表单。
非常感谢您的帮助!