2012-03-23 2 views

ответ

10
var text = "All day"; 

var value = $("option").filter(function() { 
    return $(this).text() === text; 
}).first().attr("value"); 
+0

Круто. Большое спасибо. – user1254282

1

Думаю, вам нужно будет просмотреть их.

$("select.styled option").each(function(a,b) { 
    if ($(this).html() == "All day") { 
     return $(this).val(); 
    } 
}); 

или использовать .filter()

$("select.styled option").filter(function() { 
    return $(this).html() == "All day"; 
}).val(); 
3

Другим решением было бы выбрать пункт как этот

$('select[name="dayRange"] > option:contains("All Day")').val() 

Вы можете добавить это в функцию и заменить "All Day" по ваш параметр функции.

(просто проверить перед вызовом .val(), если ваш выбор не равно нулю)

Edit:

Последняя функция будет:

getDayRangeValue = function(rangeName) { 
    // will return undefined if range doesn't exist. 
    return $('select[name="dayRange"] > option:contains("' + rangeName + '")').val(); 
} 
+0

Это действительно лучшее решение! Спасибо @Mordhak – dav

Смежные вопросы