jQuery时间下拉框左右选择时间不一样

在Web开发中,时间选择器是一个非常常见的组件,用于方便用户选择特定的时间。而在某些情况下,我们可能需要一个特殊的时间选择器,即左侧选择的时间和右侧选择的时间不一样。本文将介绍如何使用jQuery来实现这样一个时间下拉框。

理解需求

在开始编写代码之前,我们需要先理解需求:左侧选择的时间和右侧选择的时间不一样。具体而言,左侧选择的时间是整点时间,而右侧选择的时间是半点时间。例如,左侧可以选择9:00、10:00、11:00等,而右侧可以选择9:30、10:30、11:30等。

HTML结构

首先,我们需要在HTML中创建一个时间选择器的结构。具体而言,我们使用一个<select>元素来表示左侧选择的时间,使用另一个<select>元素来表示右侧选择的时间。代码如下所示:

<select id="hourSelect">
  <option value="9">9:00</option>
  <option value="10">10:00</option>
  <option value="11">11:00</option>
  <!-- 其他整点时间选项 -->
</select>

<select id="halfHourSelect">
  <option value="9:30">9:30</option>
  <option value="10:30">10:30</option>
  <option value="11:30">11:30</option>
  <!-- 其他半点时间选项 -->
</select>

在这段代码中,我们创建了两个<select>元素,分别具有不同的id。注意,我们使用了value属性来表示每个选项的值。

jQuery代码

接下来,我们使用jQuery来实现时间选择器的功能。首先,我们需要获取左侧和右侧选择器的值,并将它们分别保存在变量hourhalfHour中。代码如下所示:

var hour = $('#hourSelect').val();
var halfHour = $('#halfHourSelect').val();

注意,我们使用了jQuery的选择器来获取相应的元素,并使用val()方法来获取选中的值。

接下来,我们需要确保左侧选择的时间是整点时间。我们可以使用以下代码来实现:

$('#hourSelect').change(function() {
  var selectedHour = $(this).val();
  var roundedHour = Math.floor(selectedHour); // 向下取整
  $('#hourSelect').val(roundedHour); // 更新左侧选择器的值
});

在这段代码中,我们使用了change()方法来监听左侧选择器的变化事件。每当左侧选择器的值发生变化时,我们会获取当前选中的值,并使用Math.floor()方法将其向下取整。然后,我们将取整后的值设置为左侧选择器的新值。

最后,我们需要确保右侧选择的时间是半点时间。我们可以使用以下代码来实现:

$('#halfHourSelect').change(function() {
  var selectedHalfHour = $(this).val();
  var roundedHalfHour = Math.floor(selectedHalfHour); // 向下取整
  var halfHour = roundedHalfHour + ':30'; // 构建半点时间
  $('#halfHourSelect').val(halfHour); // 更新右侧选择器的值
});

在这段代码中,我们使用了与左侧选择器类似的逻辑来确保右侧选择的时间是半点时间。具体而言,我们获取当前选中的值,并使用Math.floor()方法将其向下取整。然后,我们构建一个半点时间,并将其设置为右侧选择器的新值。

效果演示

下面是一个示例的效果演示:

journey
  title jQuery时间下拉框左右选择时间不一样的示例
  section 用户选择左侧时间
    box 用户选择9:00
    box 用户选择10:00
    box 用户选择11:00
  section 用户选择右侧时间
    box 用户选择9:30
    box 用户选择10:30
    box 用户选择11:30

上述示例展示了用户选择左侧和右侧时间的过程。左侧时间始终是