我正在寻找一个函数,它将获取选择列表中的选项列表,并按字母顺序对它们进行排序,但有所不同。所有带有文本“NA”的值都应被推到列表的底部。
给出一个列表 -
<select>
<option value="1">Car</option>
<option value="2">Bus</option>
<option value="3">NA</option>
<option value="4">Bike</option>
<option value="5">Tractor</option>
<option value="6">NA</option>
</select>
我们最终应该得到 -
<select>
<option value="4">Bike</option>
<option value="2">Bus</option>
<option value="1">Car</option>
<option value="5">Tractor</option>
<option value="3">NA</option>
<option value="6">NA</option>
</select>
NA 的顺序并不重要。
并且不要问为什么我不能只删除 NA(或者为什么会有多个具有相同文本但基础值不同的选项,因为我也不同意它。
最佳答案
function NASort(a, b) {
if (a.innerHTML == 'NA') {
return 1;
}
else if (b.innerHTML == 'NA') {
return -1;
}
return (a.innerHTML > b.innerHTML) ? 1 : -1;
};
$('select option').sort(NASort).appendTo('select');
关于javascript - 使用 javascript/jQuery 对选择列表中的选项进行排序...但不是按字母顺序排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6670041/