2012-03-23 70 views
2

选项的值我有以下几点:获得通过文本

<select name="dayRange" class="styled"> 
    <option value="0">All day</option> 
    <option value="1">Morning and day (8:00 - 18:00)</option> 
    <option value="2">Evening(18:00 - 6:00)</option> 
</select> 

我怎样才能得到value特定的文本?
例如:返回valueAll Day。 谢谢。

回答

10
var text = "All day"; 

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

酷。十分感谢。 – user1254282 2012-03-23 10:21:23

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() 

您可以添加到这个函数和替换 “全天”你的函数参数。

编辑(调用.VAL()如果你选择不为空之前只检查):

最终的功能是:

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

这确实是最好的解决方案!谢谢@Mordhak – dav 2012-12-14 13:12:59