Мне нужно отсортировать элементы по частям текста на основе дефисов в тексте.
Например:
<select id="mySelect">
<option value="1">Oranges - Box A - Deliver</option>
<option value="2">Apples - Box A - Deliver</option>
<option value="3">Bananas - Box B - Deliver</option>
</select>
Мне нужно отсортировать элементы по тексту после первого дефиса, а затем отсортировать по начальному тексту до первого дефиса.
Сортированный результат будет выглядеть так:
<select id="mySelect">
<option value="2">Apples - Box A - Deliver</option>
<option value="1">Oranges - Box A - Deliver</option>
<option value="3">Bananas - Box B - Deliver</option>
</select>
Итак, его нужно отсортировать по имени ящика, а затем по фрукту.
Я использую следующий вид, но он использует весь текст.
function sortAllItems(listname) {
var $r = $(listname + " option");
$r.sort(function (a, b) {
return (a.text).localeCompare(b.text);
});
$(listname).append($($r));
}
Я уверен, что есть какой-то хитрый способ найти вместе дефис и подстроки, но я не смог придумать что-то, что работает.
Кто-нибудь должен был делать что-то сумасшедшее, как это раньше? Я ценю ваш вклад. Спасибо!