gpt4 book ai didi

javascript - 按字母顺序排序下拉列表,然后按特定前缀排序

转载 作者:行者123 更新时间:2023-11-30 11:24:17 25 4
gpt4 key购买 nike

我需要按字母顺序,然后按前缀对下拉列表进行排序。

我要排序的前缀是“b:”所以任何以“b:”开头的都应该在底部。

<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>

这是期望的最终结果:

<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>

我使用这段 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");

这个输出:

<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>

但我仍然需要将“b:”元素推到下拉列表的底部。我怎样才能做到这一点?

这里是 jsfiddle链接

最佳答案

您可以使用 String#includes 添加另一张支票为前缀并取检查的增量。

at.startsWith(prefix) - bt.startsWith(prefix)

var prefix = 'b:'
$("#dropdown option").sort(function(a, b) {
var at = $(a).text();
var bt = $(b).text();
return at.startsWith(prefix) - bt.startsWith(prefix) || at > bt || -(at < bt);
}).appendTo("#dropdown");
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<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>

对于较旧的用户代理,您可以使用 String#indexOf

var prefix = 'b:'
$("#dropdown option").sort(function(a, b) {
var at = $(a).text();
var bt = $(b).text();
return !at.indexOf(prefix) - !bt.indexOf(prefix) || at > bt || -(at < bt);
}).appendTo("#dropdown");
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<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>

关于javascript - 按字母顺序排序下拉列表,然后按特定前缀排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48624458/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com