gpt4 book ai didi

jquery - 使用 jQuery 按前导数字格式化选择列表

转载 作者:行者123 更新时间:2023-12-01 07:38:52 25 4
gpt4 key购买 nike

我有一个选择框,见下文。输出来 self 们无法更改的地址系统。我希望格式按数字顺序排列,即 1 Smith Road、3 Smith Road、5 Smith Road 等...

我一直在使用以下脚本来解决这个问题,我可以看到 parseInt 正在将字符串转换为数字,执行正确的排序,但删除了地址的最后一部分。所以我在输出中只得到 1、2、3 等。

$(function() {
var opAddress = [];
$('option').each(function() {
opAddress.push(parseInt($(this).text(), 10));
});
opAddress.sort(numOrdDesc);
$('option').each(function() {
$(this).text(opAddress.pop());
});
});

function numOrdDesc(a, b) {
return (b - a);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.0/jquery.min.js"></script>
<select>
<option>1 Smith Road</option>
<option>10 Smith Road</option>
<option>11 Smith Road</option>
<option>12 Smith Road</option>
<option>3 Smith Road</option>
<option>5 Smith Road</option>
</select>

任何想法,任何人都可以指出我文档等的正确方向吗?

最佳答案

你把这个问题搞得太复杂了一点。您可以在 jQuery 对象上调用 sort(),同时提供排序依据的逻辑。由于每个选项的文本都以数字开头,因此您只需对其调用 parseInt() 即可获取要排序的数值,而无需更新元素的属性。试试这个:

$(function() {
var $select = $('select');
var $option = $select.find('option').sort(function(a, b) {
return parseInt($(a).text(), 10) - parseInt($(b).text(), 10);
}).appendTo($select).first().prop('selected', true);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.0/jquery.min.js"></script>
<select>
<option>1 Smith Road</option>
<option>10 Smith Road</option>
<option>11 Smith Road</option>
<option>12 Smith Road</option>
<option>3 Smith Road</option>
<option>5 Smith Road</option>
</select>

关于jquery - 使用 jQuery 按前导数字格式化选择列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56147210/

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