使用Javascript按字母顺序设置Select

使用Javascript按字母顺序设置Select,javascript,Javascript,我有一个项目,我需要按字母顺序设置选择选项。以下是我的HTML代码: <select id=”carmakes”> <option value="Volvo">Volvo</option> <option value="Mercedes">Mercedes</option> <option value="Audi">Audi</option> <option value="S

我有一个项目,我需要按字母顺序设置选择选项。以下是我的HTML代码:

<select id=”carmakes”>
    <option value="Volvo">Volvo</option>
    <option value="Mercedes">Mercedes</option>
    <option value="Audi">Audi</option>
    <option value="Saab">Saab</option>
</select>

沃尔沃汽车
梅赛德斯
奥迪
萨博
这是我的剧本:

function alphabeticalOrder() {
    let value = document.getElementsByTagName("select")[0];
    for (let i = 0; i < value.children.length - 1; i++) {
        if (value.children[i].innerHTML < value.children[i + 1].innerHTML) {
            let temp = value.children[i].innerHTML;
            value.children[i].innerHTML = value.children[i + 1].innerHTML;
            value.children[i + 1].innerHTML = temp;
        }
    }
    return value;
}
函数字母顺序(){
让value=document.getElementsByTagName(“选择”)[0];
for(设i=0;i

我尝试过使用sort,但似乎无法使用它。

正如scunliffe提到的,在这种情况下,最好从JS中的值开始,而不是从HTML中开始。试试这个:

const make=[
“沃尔沃”,
“梅赛德斯”,
“奥迪”,
“萨博”
];
const sortedMakes=makes.sort((a,b)=>{
如果(a==b)
返回0;
if(a

看起来这与您的请求相同。使用此方法更新innerHTML时,
value
属性将保持不变,这可能会导致一些语义错误。。。您是否能够在生成选项之前对其进行排序?。。。如果可能的话,这会更理想。@scunlife因为先用HTML生成它们并不理想,我想没关系。谢谢你,没有其他方法可以对从HTML生成的选项进行排序,而不是在JS中进行排序吗?排序总是在JS中进行。HTML是静态的。可以从HTML中的值开始,然后在JS中对它们进行排序,但如果可以避免的话,这并不理想。