jquery не верная передача значения в контейнер select

328
10 января 2017, 23:58

При инициализании списка автоматически задаю необходимый мне елемент списка как выбранный но иногда выбирается неверный. Вот в чем соль...

Когда у меня в списке: 'апельсин', 'банан','яблоко','клубничка)' Все ок. Я задаю:

$('.edit_selectCategory option:contains("' + "апельсин" +'")').prop('selected', true);

И все гуд получаю 'апельсин'. Но как только в списке появляется несколько похожих слово то выбирается последнее. Тоесть если в списке еще появится 'апельсин оранженый' то я получу 'апельсин оранженый' а не 'апельсин'.

<select class="edit_selectCategory" style="width: 100%"></select>
Answer 1

Селектор :containts ищет подстроку, а не "только это".
Если нужно точное совпадение и не иначе, то как-то так:

$('.edit_selectCategory option:contains("Апельсин")') 
  .filter((i, el) => el.innerHTML.toLowerCase().trim() === 'апельсин') 
  .prop('selected', true);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
<select class='edit_selectCategory'> 
  <option>Банан</option> 
  <option>Апельсин</option> 
  <option>Яблоко</option> 
  <option>Апельсин Лиловый</option> 
  <option>Клубничка</option> 
</select>

Сначала ищем всё с этой строкой, затем используется функция .filter, в которой выбираются уже точные совпадения.

Note:
Селектор :contains выбирает регистрозависимо, т. е. слова Апельсин и апельсин будут разными.

READ ALSO
Можно ли неявно получить ссылку на класс из которого был вызван конструктор другого класса?

Можно ли неявно получить ссылку на класс из которого был вызван конструктор другого класса?

Допустим, есть класс, который вызывает в методе конструктор и создает тип

329
Как ратянуть элементы внутри контрола?

Как ратянуть элементы внутри контрола?

На главной форме есть элемент panel в нее подгружается "пользовательский элемент управления", при развертывании окна на весь экран элементы...

308
Не меняется тип колонки в DataGridView

Не меняется тип колонки в DataGridView

Пытаюсь поменять тип колонки из числового на строчный но не получаетсяВ чем может быть проблема ?

465
Как можно улучшить участок кода?

Как можно улучшить участок кода?

Здравствуйте, я только начинаю погружаться в мир разработки, хотелось спросить совета, как можно улучшить следующий код:

416