5

jQuery - установка выбранного значения элемента select по текстовому описанию

10

У меня есть элемент управления "select", и в переменной JavaScript у меня есть текстовая строка.

С помощью jQuery я хочу установить выбранный элемент управления "select" на элемент с текстом, который у меня есть (в отличие от значения, которого у меня нет).

Я понимаю, что установить его по значению довольно просто. Например:

$("#my-select").val(myVal);

Но я немного запутался, как это сделать через текстовое описание. Думаю, должен быть способ получить значение по текстовому описанию, но мой мозг не работает в полную силу, чтобы разобраться с этим.

Как мне установить выбранное значение в элементе "select" по тексту?

5 ответ(ов)

1

Я не тестировал это, но, возможно, это сработает для вас.

$("select#my-select option")
   .each(function() { this.selected = (this.text == myVal); });

В этом коде мы проходимся по всем опциям в селекте с идентификатором my-select и устанавливаем свойство selected для той опции, текст которой совпадает с переменной myVal.

0

Попробуйте следующий код, чтобы выбрать опцию с текстом myText в вашем элементе <select>:

$("#my-Select option").filter(function() {
    return $(this).text() === myText;
}).prop("selected", true);

Этот код находит все опции внутри элемента с идентификатором my-Select, фильтрует их по тексту и устанавливает выбранной ту, чья текст соответствует значению переменной myText.

0

Я делаю это следующим образом (jQuery 1.9.1):

$("#my-select").val("Dutch").change();

Обратите внимание, не забудьте вызвать change(), я долго искал, потому что не знал об этом 😃

0

Код $("#myselect option:contains('YourTextHere')").val(); вернет значение первого элемента <option>, в тексте которого содержится строка 'YourTextHere'. Я протестировал это, и оно работает корректно.

0

Эта строка сработала:

$("#myDropDown option:contains(myText)").attr('selected', true);

Этот код выберет элемент option в элементе с ID myDropDown, который содержит текст myText, и установит его как выбранный. Обратите внимание, что :contains() — это селектор jQuery, который позволяет находить элементы, содержащие указанный текст.

Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь