使用jquery在选择框中选择最接近的值

时间:2018-06-05 21:55:07

标签: javascript jquery html select

从API获得'时间'和'时间'我放入选择框如:

<select id="time">
  <option value="19:00:00">19:00:00</option>
  <option value="20:00:00">20:00:00</option>
  <option value="21:00:00">21:00:00</option>
  <option value="22:00:00">22:00:00</option> /// ETC
</select>

我希望将20:00:00显示为默认时间,因此我只需编写jquery代码:

$('#time').val('20:00:00');

问题是因为API不会在每次20:00:00作为选项返回我,所以我需要选择其他时间,所以如何用jquery选择最接近20:00:00的时间等等。如果选择框中没有20:00:00的21:00:00选择?

1 个答案:

答案 0 :(得分:2)

您可以找到所有等于或大于所需时间的选项,然后选择第一个选项,前提是列表已经订购。

&#13;
&#13;
var time = '20:00:00';

function changeTime ( value ) {
  //select all the options and filter them
  $('#time option').filter(function(index, element){
      //return just the ones that have a value equal to or
      //greater than our desired time
      return element.value >= value;
    }).eq(0).prop('selected', true); //select the first one
}

changeTime( time );
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="time">
  <option value="19:00:00">19:00:00</option>
  <option value="21:00:00">21:00:00</option>
  <option value="22:00:00">22:00:00</option> /// ETC
</select>
&#13;
&#13;
&#13;