gpt4 book ai didi

javascript - 对选项值进行 ASC 排序

转载 作者:行者123 更新时间:2023-12-01 01:18:35 27 4
gpt4 key购买 nike

我不知道如何正确排序我的选择选项值。我的选择元素返回文本值,如下所示:

** Please choose
2-3 pers.
16-18 pers.
20-24 pers
3-4 pers.
4-6 pers.
5-7 pers
6-8 pers.
8-10 pers.
10-12 pers.
12-14 pers.
14-16 pers.
16-18 pers.

我知道 javascript 的排序如下:

""
1
10
11
2
3
4
5
6
7
8
9

但我想将其从“”排序到11(“”,1,2,3,4,5,6,7,8,9,10,11)。希望这里有一些专业知识。谢谢。

HTML:

<select class="form-control" id="dessertservingID" data-value="10" name="dessertservingID" required="">
<option value="">** Please choose</option>
<option value="7">10-12 pers.</option>
<option value="8">12-14 pers.</option>
<option value="9">14-16 pers.</option>
<option selected="" value="10">16-18 pers.</option>
<option value="1">2-3 pers.</option>
<option value="11">20-24 pers.</option>
<option value="2">3-4 pers.</option>
<option value="3">4-6 pers.</option>
<option value="4">5-7 pers.</option>
<option value="5">6-8 pers.</option>
<option value="6">8-10 pers.</option>
</select>

Javascript:

$(function() {
var options = $('#dessertservingID option');
options.sort(function(a, b) {
if (a.value > b.value) {
return 1;
}
else if (a.value < b.value) {
return -1;
}
else {
return 0;
}
})

$("#dessertservingID").empty().append(options);

// Vive la France!

$('#dessertservingID option[value=""]').insertAfter($('#dessertservingID option:first'));

});

最佳答案

问题是因为您将 value 属性作为字符串进行比较。首先使用 parseInt() 将它们转换为整数。

另请注意,您可以通过简单地从一个值中减去另一个值来简化您的 sort() 逻辑:

$(function() {
var $options = $('#dessertservingID option');
$options.sort(function(a, b) {
return parseInt(a.value, 10) - parseInt(b.value, 10);
})

$("#dessertservingID").empty().append($options);

$('#dessertservingID option[value=""]').insertAfter($('#dessertservingID option:first'));
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select class="form-control" id="dessertservingID" data-value="10" name="dessertservingID" required="">
<option value="">** Please choose</option>
<option value="7">10-12 pers.</option>
<option value="8">12-14 pers.</option>
<option value="9">14-16 pers.</option>
<option selected="" value="10">16-18 pers.</option>
<option value="1">2-3 pers.</option>
<option value="11">20-24 pers.</option>
<option value="2">3-4 pers.</option>
<option value="3">4-6 pers.</option>
<option value="4">5-7 pers.</option>
<option value="5">6-8 pers.</option>
<option value="6">8-10 pers.</option>
</select>

关于javascript - 对选项值进行 ASC 排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54479058/

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