<html>
<head>
<script type="text/javascript">
function insertOption()
  {
  var before = document.getElementById("beforeTime").value;
  var after=document.getElementById("afterTime");  
      after.options.length=0;
  var newOption;
  var arr=new Array("06:00","06:30","07:00","07:30","08:00","08:30","09:00","09:30","10:00","10:30","11:00","11:30","12:00","12:30","13:00","13:30","14:00","14:30","15:00","15:30","16:00","16:30","17:00","17:30","18:00","18:30","19:00","19:30","20:00","20:30","21:00","21:30","22:00","22:30","23:00","23:30","23:59");
  var date=new Array("60000","63000","70000","73000","80000","83000","90000","93000","100000","103000","110000","113000","120000","123000","130000","133000","140000","143000","150000","153000","160000","163000","170000","173000","180000","183000","190000","193000","200000","203000","210000","213000","220000","223000","230000","233000","235900");
     
for (var i=0;i<arr.length;i++){  if(before==date[i]){
    if(i<=30){                     
 for(var j=0;j<7;j++){
newOption = document.createElement('option');  
newOption.text = arr[i+j];
newOption.value=date[i+j];
after.add(newOption,null);
      }
}
else{
    for(var j=0;j<=(36-i);j++){
newOption = document.createElement('option');  
newOption.text = arr[i+j];
newOption.value=date[i+j];
after.add(newOption,null);
      }
}  }
}  
  }
</script>
</head>
<body><form>
<select id="beforeTime" onchange="insertOption()">
<option>请选择...</option>
<option selected="selected" value="60000">06:00</option><option value="63000">06:30</option><option value="70000">07:00</option><option value="73000">07:30</option><option value="80000">08:00</option><option value="83000">08:30</option><option value="90000">09:00</option><option value="93000">09:30</option><option value="100000">10:00</option><option value="103000">10:30</option><option value="110000">11:00</option><option value="113000">11:30</option><option value="120000">12:00</option><option value="123000">12:30</option><option value="130000">13:00</option><option value="133000">13:30</option><option value="140000">14:00</option><option value="143000">14:30</option><option value="150000">15:00</option><option value="153000">15:30</option><option value="160000">16:00</option><option value="163000">16:30</option><option value="170000">17:00</option><option value="173000">17:30</option><option value="180000">18:00</option><option value="183000">18:30</option><option value="190000">19:00</option><option value="193000">19:30</option><option value="200000">20:00</option><option value="203000">20:30</option><option value="210000">21:00</option><option value="213000">21:30</option><option value="220000">22:00</option><option value="223000">22:30</option><option value="230000">23:00</option><option value="233000">23:30</option><option value="235900">23:59</option>
</select>
&nbsp;&nbsp;&nbsp;
<select id="afterTime"></select>
</form>
</body>
</html>

解决方案 »

  1.   

    <html>
    <head>
    <script type="text/javascript">
    function insertOption()
      {
    var before = document.getElementById("beforeTime").value;
    var after=document.getElementById("afterTime");   
      after.options.length=0;
    var newOption;
    var arr=new Array("06:00","06:30","07:00","07:30","08:00","08:30","09:00","09:30","10:00","10:30","11:00","11:30","12:00","12:30","13:00","13:30","14:00","14:30","15:00","15:30","16:00","16:30","17:00","17:30","18:00","18:30","19:00","19:30","20:00","20:30","21:00","21:30","22:00","22:30","23:00","23:30","23:59");
    var date=new Array("60000","63000","70000","73000","80000","83000","90000","93000","100000","103000","110000","113000","120000","123000","130000","133000","140000","143000","150000","153000","160000","163000","170000","173000","180000","183000","190000","193000","200000","203000","210000","213000","220000","223000","230000","233000","235900");
        
    for (var i=0;i<arr.length;i++){if(before==date[i]){
    if(i<=30){   
    for(var j=0;j<7;j++){
    newOption = document.createElement('option');  
    //newOption.text = arr[i+j]; // ie下text不管用 FF下有这个属性 
    newOption.innerHTML = arr[i+j];
    newOption.value=date[i+j];
    after.appendChild(newOption); //用这个取代add  dom通用
    //after.add(newOption,null);
    }}
    else{
    for(var j=0;j<=(36-i);j++){
    newOption = document.createElement('option');   
    //newOption.text = arr[i+j];
    newOption.innerHTML = arr[i+j];
    newOption.value=date[i+j];
    after.appendChild(newOption);
    //after.add(newOption,null);
    }
    }}
    }   
      }
    </script>
    </head>
    <body><form>
    <select id="beforeTime" onchange="insertOption()">
    <option>请选择...</option>
    <option selected="selected" value="60000">06:00</option><option value="63000">06:30</option><option value="70000">07:00</option><option value="73000">07:30</option><option value="80000">08:00</option><option value="83000">08:30</option><option value="90000">09:00</option><option value="93000">09:30</option><option value="100000">10:00</option><option value="103000">10:30</option><option value="110000">11:00</option><option value="113000">11:30</option><option value="120000">12:00</option><option value="123000">12:30</option><option value="130000">13:00</option><option value="133000">13:30</option><option value="140000">14:00</option><option value="143000">14:30</option><option value="150000">15:00</option><option value="153000">15:30</option><option value="160000">16:00</option><option value="163000">16:30</option><option value="170000">17:00</option><option value="173000">17:30</option><option value="180000">18:00</option><option value="183000">18:30</option><option value="190000">19:00</option><option value="193000">19:30</option><option value="200000">20:00</option><option value="203000">20:30</option><option value="210000">21:00</option><option value="213000">21:30</option><option value="220000">22:00</option><option value="223000">22:30</option><option value="230000">23:00</option><option value="233000">23:30</option><option value="235900">23:59</option>
    </select>
    &nbsp;&nbsp;&nbsp;
    <select id="afterTime"></select>
    </form>
    </body>
    </html>
      

  2.   

    Up LS!-----------------------------
    老虎系列插件v1.4即将面世
      

  3.   

    兄弟,,,这个js 真的要好好优化了。(虽说这偏了题为了js的壮大我还是要说下。)
    你这每次调用insertOption()时都会
    var arr=new Array()
    var date=new Array()
    再加一个for (var i=0;i<arr.length;i++){}  ;;(你这里应该是dete.length吧,虽说是一样长度的数组)
    你if(before==date[i]){}后还在继续做for循环也不去终止一下。
    if(i<=30){  }else{}为什么不能改成。var len=arr.length;
    if(before==date[i]){
    //if(i<=30){   
    for(var j=0;j<7&&i+j<len;j++){
    newOption = document.createElement('option');  
    //newOption.text = arr[i+j]; // ie下text不管用 FF下有这个属性 
    newOption.innerHTML = arr[i+j];
    newOption.value=date[i+j];
    after.appendChild(newOption); //用这个取代add  dom通用
    //after.add(newOption,null);
    //}
    顺便提一下, 在 JavaScript 1.6 里,javascript 数组增加了几个非常有用的方法: indexOf 、last IndexOf 、every、 filter、 forEach、 map、 some,其中前两个可以归为元素定位方法ie6 可以自己写一个
    if (!Array.prototype.indexOf)
    {
        Array.prototype.indexOf = function(elt , from)
        {
            var len = this.length;
     
            var from = Number(arguments[1]) || 0;
            from = (from < 0)
                ? Math.ceil(from)
                : Math.floor(from);
            if (from < 0)
                from += len;
     
            for (; from < len; from++)
            {
                if (from in this && this[from] === elt)
                    return from;
            }
            return -1;
        };
    }