Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在单击按钮时迭代数组_Javascript_Jquery_Html - Fatal编程技术网

Javascript 在单击按钮时迭代数组

Javascript 在单击按钮时迭代数组,javascript,jquery,html,Javascript,Jquery,Html,我想在单击按钮时打印阵列中的下一项。它只打印2。我希望它打印2,然后我点击按钮,它应该打印3,然后点击并打印4,依此类推 代码如下: 示例问题 函数nextQuestion(){ var questionArray=[2,3,4,5,6,7]; var arrayLength=questionArray.length; 对于(变量i=1;i

我想在单击按钮时打印阵列中的下一项。它只打印2。我希望它打印2,然后我点击按钮,它应该打印3,然后点击并打印4,依此类推

代码如下:


示例问题

函数nextQuestion(){ var questionArray=[2,3,4,5,6,7]; var arrayLength=questionArray.length; 对于(变量i=1;i

HTML:

完整代码:

<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>

示例问题
$(文档).ready(函数(){
var questionStack=[7,6,5,4,3,2];
$('#nextquestion')。单击(函数(){
$('#results').html(questionStack.pop());
});
});

实际上,您现在打印的内容与数组无关,而与i有关。这里也不需要使用for循环。基本上,您需要跟踪索引,然后在每次运行函数时将其递增一。这样的办法应该行得通

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

var计数器=0;
var questionArray=[2,3,4,5,6,7];
函数nextQuestion(){
$('#results').html(questionArray[counter]);
柜台++
}

看这个,

<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>

示例问题

var计数=0; 函数nextQuestion(){ var questionArray=[2,3,4,5,6,7]; var arrayLength=questionArray.length; if(计数==阵列长度){ 计数=0; } $('#results').html(questionArray[count]); 计数++; }
使用模块模式的另一种方法

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

你能用jsfiddle来说明你的问题吗?
<script type="text/javascript">
   var counter = 0;
   var questionArray = [2, 3, 4, 5, 6, 7];
    function nextQuestion() {
         $('#results').html(questionArray[counter]);
         counter++
    }
</script>
<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>
var nextQuestion = (function() {
    var questionArray = [2, 3, 4, 5, 6, 7];
    var i = 0;
    return function() {
        $('#results').html(questionArray[i%questionArray.length]);
        i++;
    }
})();