按文字获取选项的值

时间:2012-03-23 10:10:22

标签: jquery

我有以下内容:

<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。 感谢。

3 个答案:

答案 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();