我有以下内容:
<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
?
例如:为value
返回All Day
。
感谢。
答案 0 :(得分:11)
var text = "All day";
var value = $("option").filter(function() {
return $(this).text() === text;
}).first().attr("value");
答案 1 :(得分:5)
另一个解决方案是选择这样的项目
$('select[name="dayRange"] > option:contains("All Day")').val()
您可以将其添加到函数中,并用函数参数替换“All Day”。
(如果你的选择不是空的话,只需在调用.val()之前检查)
修改强>
最终的功能是:
getDayRangeValue = function(rangeName) {
// will return undefined if range doesn't exist.
return $('select[name="dayRange"] > option:contains("' + rangeName + '")').val();
}
答案 2 :(得分: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();