3

我在选择标签中有两个下拉列表项

第一个选择标签有年份列表 第二个选择标签有月份列表

<SELECT id="year" onchange="showData();">
  <OPTION VALUE="2012">2012
  <OPTION VALUE="2011">2011
  <OPTION VALUE="2010">2010
  <OPTION VALUE="2009">2009
  <OPTION VALUE="2008">2008
</SELECT>

<SELECT id="month" onchange="showData();">
  <OPTION VALUE="jan">jan
  <OPTION VALUE="feb">feb
  <OPTION VALUE="mar">mar
        .
        .
  <OPTION VALUE="dec">dec
</SELECT>

那么我如何在 5 秒后自动更改月份和一年 60 秒

我的jQuery是什么

function changeMonthYear() {    
    //what to code here to change option of select tag
    //automatically after some time 
    //say 5 sec per month & after 60 sec year will be changed
    showData();    
}

showData() {    
    //some logic will show data for selected year & month    
}

如何修复它

4

3 回答 3

4

尝试一下

function changeYear() {

        $('option:selected', '#year').removeAttr('selected').next('option').attr(
                'selected', 'selected'); //your id of select tag is 'year'

        showData();

    }

    function changeYearMonth() {

        $('option:selected', '#month').removeAttr('selected').next('option')
                .attr('selected', 'selected'); //your id of select tag is 'month'

        showData();

    }

    setInterval(changeYear, 60000);
    setInterval(changeYearMonth, 5000);

    showData(){

    //some logic will show data for selected year & month

    }
于 2012-09-27T11:45:10.343 回答
1

这是一个简单的解决方案,一旦它通过所有选项,它将从头开始再次:

var i=0;
function changeYear() {
  var count = $('#year option').length;
  i = (i == count) ? 0 : i;
  $('#year').val($('#year option').eq(i++).val());
}

setInterval(changeYear, 1000); // example is 1 second!

这是一个小提琴

你也必须做同样的事情来改变月份,只是想我会把它留在这里,因为它比其他例子更干净(在我看来)

于 2012-09-27T12:01:40.007 回答
0
var i=0,j=0;

 function changeMonthYear() {

        //what to code here to change option of select tag
        //automatically after some time 
        //say 5 sec per month & after 60 sec year will be changed
        setInterval(showData('year'),1000*60);
        setInterval(showData('month'),1000*5);

    }
function showData(that)
{
if(that=='year')
{    
document.getElementById(that).getElementsByTagName('option')[i].selected=true;
    i++;
}
else
{
document.getElementById(that).getElementsByTagName('option')[j].selected=true;
j++;
}
}
changeMonthYear();
于 2012-09-27T11:48:03.630 回答