2011-02-01 74 views
0

这是我试图用此代码完成的主旨。 我想选择一个HOUR,这个代码是做的,它只是选择4个项目。但我的主要问题是,如果有人选择晚上11点半或午夜12点,我的.NEXT()代码不起作用......是否有更好的解决方案?jQuery UI打开对话框运行功能

$('.startTime222').change(function() { 
    adjustTime = $(".startTime option:selected").next().next().next().next().val(); 
}); 

<select name="startTime" class="startTime222 required" id="startTime2" > 
    <option value="00:00:00">12:00am</option> 
    <option value="00:15:00">12:15am</option> 
    <option value="00:30:00">12:30am</option> 
    <option value="00:45:00">12:45am</option> 
    <option value="01:00:00">1:00am</option> 
    <option value="01:15:00">1:15am</option> 
    <option value="01:30:00">1:30am</option> 
    <option value="01:45:00">1:45am</option> 
    ... 
</select> 

回答

1

将建议放在心上,将调整时间作为一个单独的属性存储在选项上。这样您仍然可以访问所选时间以及调整时间。由于现在可以访问两个值,因此您不必再向前移动四个孩子。

$('.startTime222').change(function() { 
    adjustTime = $(".startTime option:selected").attr("data-adjust"); 
}); 

<select name="startTime" class="startTime222 required" id="startTime2" > 
    <option value="00:00:00" data-adjust="01:00:00">12:00am</option> 
    <option value="00:15:00" data-adjust="01:15:00">12:15am</option> 
    <option value="00:30:00" data-adjust="01:30:00">12:30am</option> 
    <option value="00:45:00" data-adjust="01:45:00">12:45am</option> 
    <option value="01:00:00" data-adjust="02:00:00">1:00am</option> 
    <option value="01:15:00" data-adjust="02:15:00">1:15am</option> 
    <option value="01:30:00" data-adjust="02:30:00">1:30am</option> 
    <option value="01:45:00" data-adjust="02:45:00">1:45am</option> 
    ... 
</select> 
+0

如果您依赖与开始时间相匹配的文本的值属性并且仅使用默认结束的调整,您可以为每个选项添加data-adjust =“01:00:00”属性时间。不要在文本中使用.val(),然后使用.attr('date-adjust')。 – 2011-02-01 22:23:04