Попробуйте
$("#list option:contains(Option B)").val();
Редактировать, Обновлено
Как указал @dfsq, комментируя оригинальный ответ
не очень надежны, как это также будет много «Option Boom». фильтр может быть лучший вариант.
тесты http://jsfiddle.net/5cy9tt2o/1/
Кроме того,
потому что :contains
селектор просто проверяет indexOf
вхождений. См. источник его here. ... обычно это не проблема, просто> что-то нужно знать.
где ":contains
селектор просто проверяет indexOf
вхождений" не появляется documentation?
Использование .filter()
может также возвращать «ненадежные» результаты, если конкретное найдено совпадение, или не нашло, по предоставленному матчу искать в пределах данного текста элемента.
Например, @dfsq в пример
$("#list option:contains(Option B)").val();
соответствия
"Option Boom"
Принятый ответ, хотя использование .filter()
может не возвращать ожидаемые результаты, если " "
появились после того, как text
<option value='2'>Option B </option>
тесты http://jsfiddle.net/5cy9tt2o/4/
Альтернативный подход, который следует ожидать возвращения точное совпадение, не вызывая сложение внутренних методов; хотя параметры RegExp
, или любые другие настройки, могут, конечно, быть дополнительными.
Базовый и первичный фокус метода, чтобы возвращать точное соответствие, если это возможно, текста, переданного методу.
Учитывая html
от первоначальной должности, модифицированной же условия испытаний пытались при температуре выше,
<select id='list'>
<option value='1'>Option Boom</option>
<option value='2'>Option B</option>
<option value='3'>Option C </option>
</select>
JS
(function($) {
$.fn.tryToMatchExactText = function (text) {
return $("*").filter(function(i, el) {
return el.textContent.match(new RegExp("^"+text+"$")) !== null
})
};
}(jQuery));
var list = $("#list option");
console.log(list.tryToMatchExactText("Option B").val() // `"2"`
, list.tryToMatchExactText("Option Boom").val() // `"1"`
, list.tryToMatchExactText("Option C").val() // `undefined`
, list.tryToMatchExactText("Option C ").val() // `"3"`
);
тестов http://jsfiddle.net/5cy9tt2o/3/
я хочу, чтобы выберите значение окна, но у меня есть текст только :( –