Как отсортировать несколько выпадающих списков по возрастанию с точки зрения их текста метки с помощью jquery - PullRequest
0 голосов
/ 20 февраля 2019

У меня есть два раскрывающихся списка в форме, и я хочу отсортировать значения по алфавитному порядку. Поэтому я попытался реализовать с помощью jquery.На самом деле он работает в порядке возрастания, но все раскрывающиеся значения появляются в каждом раскрывающемся списке, что означает дублирование (первое раскрывающееся значение появляется во втором раскрывающемся списке и наоборот).

Мой код

$(function() {
  var select = $('select');
  select.html(select.find('option').sort(function(x, y) {
    return $(x).text() > $(y).text() ? 1 : -1;
  }));
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="wrapper">
  <select>
    <option selected>Choose a number</option>
    <option value="3">Three</option>
    <option value="1">One</option>
    <option value="0">Zero</option>
    <option value="2">Two</option>
    <option value="8">Eight</option>
  </select>
 
   <select>
    <option selected>Choose a number</option>
    <option value="3">cxbcbcb</option>
    <option value="1">Obcbcbcne</option>
    <option value="0">Zbcbero</option>
    <option value="2">detygey</option>
    <option value="8">eyeyeyy</option>
  </select>
  
  
</div>

1 Ответ

0 голосов
/ 20 февраля 2019

Вот простое решение: -

   $(function() {
       // Loop for each select element on the page.
            $("select").each(function() {             
                // Keep track of the selected option.
                var selectedValue = $(this).val();     
                // Sort all the options by text. I could easily sort these by val.
                $(this).html($("option", $(this)).sort(function(a, b) {
                    if(a.text == "Choose a number") return 1;
                    if(b.text == "Choose a number") return 1;
                    return a.text == b.text ? 0 : a.text < b.text ? -1 : 1
                }));     
                // Select one option.
                $(this).val(selectedValue);
            });
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...