javascript - 为什么我的 'for' 循环函数不起作用?

标签 javascript jquery

<分区>

我正在使用 Javascript/jQuery 使用我自己的自定义步骤创建一个 slider 。

这里我使用了一个 for 循环,但不知何故我的函数只有在我将一个 while 循环放入其中时才起作用。

第一个代码(没有用): - 没有while

var steps = '';

// Setting up the steps according to the number of slides
for( var i = 0; i < $itemsCount; ++i ) {

    var step = '';

    // Find step number and step text
    var step_text = $items.eq(i).attr('data-title');

    var step_count = i + 1;

    // current step will have the class 'current'
    var step = i === current ? '<li class="step current"><span data-step="'+ step_count +'">'+ step_text +'</span></li>' : '<li class="step"><span data-step="'+ step_count +'">'+ step_text +'</span></li>';

    i++;
    steps += step;
}

var navSteps = $( '<ul class="steps"/>' ).append(steps).prependTo($slider);


第二个代码(有效): - 使用while

var steps = '';

// Setting up the steps according to the number of slides
for( var i = 0; i < $itemsCount; ++i ) {

    var step = '';

    // Find step number and step text
    while (i < $itemsCount) {

        var step_text = $items.eq(i).attr('data-title');

        var step_count = i + 1;

        // current step will have the class 'current'
        var step = i === current ? '<li class="step current"><span data-step="'+ step_count +'">'+ step_text +'</span></li>' : '<li class="step"><span data-step="'+ step_count +'">'+ step_text +'</span></li>';

        i++;
        steps += step;
    }
}

var navSteps = $( '<ul class="steps"/>' ).append(steps).prependTo($slider);

这不是真正的问题,但我仍然想知道为什么第一个不起作用。

谁能告诉我为什么我必须使用 while 而不是循环?

最佳答案

在第一个中,您将“i”递增两次:一次在循环体的末尾,一次在循环头(括号中的 i++)。

当您添加 while 循环时,您基本上使 for 循环(大部分)无关紧要,因为当 while 循环退出值时"i"将导致 for 循环也退出。

关于javascript - 为什么我的 'for' 循环函数不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23411665/

相关文章:

javascript - jQuery Popup 在主浏览器窗口中打开一个新选项卡

jquery 每个都不能正常工作

javascript - Ajax "deselects"鼠标光标下的超链接

javascript jquery 文件打开器

javascript - 将自定义按钮添加到传单 map

javascript - 删除 Highcharts 中的第一条和最后一条网格线?

jquery - 具有相同分配的多个 div,为什么 jQuery 只为第一个设置动画?

jquery查找动态生成的tr标签的ID

javascript - ExtJS:自动加载在 IE 中不起作用

javascript - 将函数的返回值分配给React Native中的对象属性