Мне нужно проверить, <select>
есть ли вариант, текст которого равен определенному значению.
Например, если есть <option value="123">abc</option>
, я бы искал "abc".
Есть ли селектор для этого?
Я ищу что-то похожее, $('#select option[value="123"]');
но для текста.
has
ответ в SLaks полезен, но вопрос в ответе Флойда также хорош ... Я не знаю, что принять.Ответы:
Это может помочь:
Демо скрипка
Это даст вам возможность с текстом,
B
а не те, которые содержат текст, который содержитB
. Надеюсь это поможетДля последних версий jQuery вышеупомянутое не работает. Как прокомментировал Quandary ниже, это то, что работает для jQuery 1.9.1:
Обновленная скрипка
источник
Вы можете использовать
:contains()
селектор, чтобы выбрать элементы, которые содержат определенный текст.Например:
Чтобы проверить, есть ли у данного
<select>
элемента такая опция, используйте.has()
метод :Чтобы найти все
<select>
s, которые содержат такую опцию, используйте:has()
селектор :источник
:contains
не окончательно сейчас, не так ли?123abcdef
?Ни одно из предыдущих предложений не помогло мне в jQuery 1.7.2, потому что я пытаюсь установить выбранный индекс списка на основе значения из текстового поля, а некоторые текстовые значения содержатся в нескольких параметрах. Я закончил тем, что использовал следующее:
источник
contains
полное отсутствие может на самом деле ускорить процесс.$(this).parent().val($(this).val());
вы, вероятно, могли бы сделать и то и другое, но для меня установка только родителяval()
сделала свое дело.Я столкнулся с той же проблемой ниже, это рабочий код:
Демо: http://jsfiddle.net/YRBrp/83/
источник
Это сработало для меня:
$("#test").find("option:contains('abc')");
источник
$("#testselect").find("option:contains('option-text')").attr('value');
Таким образом, вы можете использовать событие, как.click()
изменить настройку.Это лучший метод для выбора текста в выпадающем списке.
источник
this is your selected text plus more
.Я пробовал некоторые из этих вещей, пока не получил один для работы в Firefox и IE. Это то, что я придумал.
другой способ написать это в более читабельном стиле:
псевдокод:
источник
"#my-Select" + " option"
? Почему не просто"#my-Select option"
?Используйте следующие
источник
Это будет работать в jQuery 1.6 (обратите внимание на двоеточие перед открывающей скобкой), но не будет работать в более новых выпусках (1.10 в то время).
источник
$("#mySelect option").filter(function() { return this.text == "abc"; });
будет работать с последними версиями jQuery .. Или, возможно, каким-то другим способом, который вы предпочитаете использовать ..Для jquery версии 1.10.2 у меня работало ниже
источник
Это работа для меня
источник
Это работает для меня:
result
Переменная возвращает индекс совпавшего значения текста. Теперь я просто установлю его, используя его индекс:источник
Либо вы перебираете опции, либо помещаете тот же текст в другой атрибут опции и выбираете с этим.
источник
Это тоже будет работать.
$ ('# test'). find ("опция выбора: содержит ('B')"). filter (": selected");
источник
ABC
.Как описано в этом ответе , вы можете легко создать свой собственный селектор для hasText. Это позволяет вам найти вариант с
$('#test').find('option:hastText("B")').val();
Вот метод hasText, который я добавил:
источник
Это работает для меня
Спасибо за все сообщения.
источник