Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 如何将新选项附加到select元素,但在声明时保持新选项项的顺序_Jquery - Fatal编程技术网

Jquery 如何将新选项附加到select元素,但在声明时保持新选项项的顺序

Jquery 如何将新选项附加到select元素,但在声明时保持新选项项的顺序,jquery,Jquery,我想在用户单击按钮时更改select元素的所有选项。 但是,附加在select标记中的新数据不遵循其在newOptions变量中的顺序。它将所有键以0开头的值放在列表的底部,尽管它们被声明并且应该在顶部。如何解决此问题 期望值: <select name="car" id="car"> <option value="0">00</option> <option value="5">05</option> <

我想在用户单击按钮时更改select元素的所有选项。 但是,附加在select标记中的新数据不遵循其在newOptions变量中的顺序。它将所有键以0开头的值放在列表的底部,尽管它们被声明并且应该在顶部。如何解决此问题

期望值:

<select name="car" id="car">
    <option value="0">00</option>
    <option value="5">05</option>
    <option value="15">15</option>
    <option value="30">30</option>
    <option value="45">45</option>
</select>

00
05
15
30
45
得到了

<select name="car" id="car">
    <option value="15">15</option>
    <option value="30">30</option>
    <option value="45">45</option>
     <option value="0">00</option>
    <option value="5">05</option>
</select>

15
30
45
00
05
函数更改(){
$(“#车”).empty();
新选项={
"00": 0,
"05": 5,
"15": 15,
"30": 30,
"45": 45
}
for(对象条目的常数[k,v](新选项)){
$(“#car”).append($(“”).attr(“value”,v).text(k));
}
}

丰田
宝马
本田

在Object.entries之后应用排序功能

function change() {
  $("#car").empty();

  newOptions = {
    "00": 0,
    "05": 5,
    "15": 15,
    "30": 30,
    "45": 45
  }

  for (const [k, v] of Object.entries(newOptions).sort(function(a, b) {return a - b;})) {
   $("#car").append($("<option></option>").attr("value",v).text(k));
}
} 
函数更改(){
$(“#车”).empty();
新选项={
"00": 0,
"05": 5,
"15": 15,
"30": 30,
"45": 45
}
for(Object.entries(newOptions.sort)的常量[k,v](函数(a,b){返回a-b;})){
$(“#car”).append($(“”).attr(“value”,v).text(k));
}
} 

这是一个完美的例子,说明为什么在顺序很重要的情况下不应使用对象。对象将始终首先排序其整数键(
15
30
45
)。考虑一下<代码> map <代码>或<代码>数组< /代码>。