Javascript 按字母顺序排列下拉列表,然后按特定前缀排列
我需要按字母顺序对下拉列表进行排序,然后按前缀进行排序 我想排序的前缀是“b:”,所以任何以“b:”开头的都应该在底部Javascript 按字母顺序排列下拉列表,然后按特定前缀排列,javascript,jquery,Javascript,Jquery,我需要按字母顺序对下拉列表进行排序,然后按前缀进行排序 我想排序的前缀是“b:”,所以任何以“b:”开头的都应该在底部 <select id="dropdown"> <option value="1">a</option> <option value="2">b</option> <option value="3">c</option> <option value="4">b: opt
<select id="dropdown">
<option value="1">a</option>
<option value="2">b</option>
<option value="3">c</option>
<option value="4">b: option 1</option>
<option value="5">b: option 2</option>
<option value="6">c</option>
</select>
A.
B
C
b:备选方案1
b:备选方案2
C
这是期望的最终结果:
<select id="dropdown">
<option value="1">a</option>
<option value="2">b</option>
<option value="3">c</option>
<option value="6">c</option>
<option value="4">b: option 1</option>
<option value="5">b: option 2</option>
</select>
A.
B
C
C
b:备选方案1
b:备选方案2
我使用以下JavaScript代码按字母顺序排序:
$("#dropdown option").sort(function(a,b) {
var at = $(a).text();
var bt = $(b).text();
return (at > bt)?1:((at < bt)?-1:0);
}).appendTo("#dropdown");
$(“#下拉选项”).sort(函数(a,b){
var at=$(a.text();
var bt=$(b).text();
返回值(at>bt)?1:((at
这将产生:
<select id="dropdown">
<option value="1">a</option>
<option value="2">b</option>
<option value="4">b: option 1</option>
<option value="5">b: option 2</option>
<option value="3">c</option>
<option value="6">c</option>
</select>
A.
B
b:备选方案1
b:备选方案2
C
C
但我仍然需要将“b:”元素推到下拉列表的底部。我怎样才能做到这一点
这里是链接您可以为前缀添加另一个检查,并获取检查的增量
at.startsWith(prefix) - bt.startsWith(prefix)
var前缀='b:'
$(“#下拉选项”).sort(函数(a,b){
var at=$(a.text();
var bt=$(b).text();
返回at.startsWith(前缀)-bt.startsWith(前缀)| at>bt | |-(at
A.
B
C
b:备选方案1
b:备选方案2
C
这似乎可以完成任务,但startsWith在较旧的浏览器中不起作用?