gpt4 book ai didi

javascript - 在下拉列表中排序

转载 作者:行者123 更新时间:2023-11-29 14:51:57 25 4
gpt4 key购买 nike

我正在从一些 JSON 中填充一些下拉列表,它目前按预期工作,但我正在尝试对下拉列表中的值进行排序。对于我所有的下拉菜单,它都工作正常,除了其中一个有数字,在这种情况下它列出了 1、10、12、2。

有什么想法可以让它按字母顺序对其他所有内容进行排序,但也可以使用数值进行排序吗?

这是我的 JS(它为每个字段复制 - 可能应该尝试找到一种使其可重用的方法):

var populateGenres = _.map(data.genres, function (val) {
return '<option>' + val + '</option>';
}).join();
var target = '#genreField';
$('#genreField').html(populateGenres);
reArrangeSelect(target);

这是JS的排序:

function reArrangeSelect(target) {
$(target).html($(target + " option").sort(function(a, b) {
return a.text == b.text ? 0 : a.text < b.text ? -1 : 1
}))
}

我的 HTML 是这种格式:

<td>
<select id="genreField" class="form-control"></select>
</td>
<td>
<select id="authorField" class="form-control"></select>
</td>

最佳答案

function reArrangeSelect(target) {
$(target).html($(target + " option").sort(function(a, b) {
// u can use that 'getValue' function
// for "a.text == 'some string'" it will return 'some string' (string type),
// for "a.text == '10'" it will return 10 (number type)
var aVal = getValue(a.text);
var bVal = getValue(b.text);
return aVal == bVal ? 0 : aVal < bVal ? -1 : 1;
}));
}

function getValue(val) {
var asNumber = parseFloat(val);
return isNaN(asNumber) ? val : asNumber;
}

关于javascript - 在下拉列表中排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24326437/

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