Переберите каждый элемент опции и проверьте, находится ли данное значение в пределах диапазона значения опции. Скрипка: http://jsfiddle.net/QFfLB/2/
var value = $("#inputBox").val() * 1; //Convert to number, example: 105
var elem;
$('select option').each(function(){
var val = $(this).val(); //Example: 100-110
var range = val.split("-"); //Example: [100,110]
if(val >= range[0] && val <= range[1]){
elem = this;
return false;
}
});
elem = $(elem); //If existent, elem will be the jQuery object,
// representing the option element
В этом коде предполагается, что все значения параметров имеют следующий формат: x-y
(где x
и y
- числа). Если ваш код содержит что-то вроде 120+
, код необходимо изменить. Если это так, оставьте комментарий со ссылкой на ваш соответствующий код, и я посмотрю его.
Обновление - Скрипка: http://jsfiddle.net/QFfLB/4/
Используйте метод .text()
, чтобы получить метку опции. Затем используйте .match(/\d+/g)
, чтобы найти числовые значения:
var value = $("#inputBox").val() * 1; //Get number
var $select = $("select#attribute592"); //<select> element
var optionValue = ""; //Default value
$('option', $select).each(function(){
var range = $(this).text().match(/\d+/g); //Range
if(range && value >= range[0] && value < range[1]){
optionValue = this.value;
return false;
}
});
$select.val(optionValue); //Set new option value