2014-06-15 37 views
-2

我想打印數組中的下一個項目,當我點擊按鈕時。它只是打印2.我希望它打印2,然後我按一下按鈕,它應該打印3,點擊和打印4等遍歷按鈕上的數組點擊

這是代碼:

<head> 
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script> 
</head> 

<body> 
    <p>Sample Question</p> 
    <div id="results"></div> 
    <script type="text/javascript"> 
     function nextQuestion() { 
      var questionArray = [2, 3, 4, 5, 6, 7]; 
      var arrayLength = questionArray.length; 

      for (var i = 1; i < arrayLength; i++) { 
       $('#results').html(i); 
      } 
     } 
    </script> 
    <input type='button' onClick='nextQuestion();' id='nextquestion' value='Next' /> 
</body> 

+0

你可以讓jsfiddle顯示你的問題嗎? – MikeWu

回答

1

HTML:

<h1>Sample Question</h1> 
<input type='button' id='nextquestion' value='Next' /> 
<div id="results"></div> 

的jQuery:

var questionStack = [7, 6, 5, 4, 3, 2]; 

$('#nextquestion').click(function() { 
    $('#results').html(questionStack.pop());  
}); 

DEMO

全碼:

<head> 
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script> 
</head> 

<body> 
    <h1>Sample Question</h1> 
    <input type='button' id='nextquestion' value='Next' /> 
    <div id="results"></div> 

    <script type="text/javascript"> 
     $(document).ready(function() { 
      var questionStack = [7, 6, 5, 4, 3, 2];  
      $('#nextquestion').click(function() { 
       $('#results').html(questionStack.pop());  
      }); 
     }); 
    </script> 
</body> 
0

其實你要打印現在已經無關,與你的陣列,但與我做的。這裏也不需要使用for循環。基本上你需要跟蹤指數,然後每次運行函數時加一。像這樣的東西應該工作。

<script type="text/javascript"> 
    var counter = 0; 
    var questionArray = [2, 3, 4, 5, 6, 7]; 
    function nextQuestion() { 
     $('#results').html(questionArray[counter]); 
     counter++ 
    } 
</script> 
0

Demo Fiddle

看到這,

<head> 
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script> 
</head> 

<body> 
    <p>Sample Question</p> 
    <div id="results"></div> 
    <script type="text/javascript"> 
    var count = 0; 

    function nextQuestion() { 
     var questionArray = [2, 3, 4, 5, 6, 7]; 
     var arrayLength = questionArray.length; 


     if (count == arrayLength) { 
      count = 0; 
     } 
     $('#results').html(questionArray[count]); 
     count++; 

    } 
    </script> 
</body> 
0

然而,使用另一種方式module pattern

var nextQuestion = (function() { 
    var questionArray = [2, 3, 4, 5, 6, 7]; 
    var i = 0; 
    return function() { 
     $('#results').html(questionArray[i%questionArray.length]); 
     i++; 
    } 
})(); 

fiddle