自定义attr的循环

问题描述 投票:-4回答:2

我在找一个可以这样算的循环圈

1 , 0.8 , 0.6, 0.4 , 0.2 , 0.2 , 0.4 , 0.6 , 0.8 , 1

并附加到自定义attr "data-depth"li 元素 i 闹得不可开交

for (var i = 0; i < 5; i++) {
    $tiles.eq(i).attr('data-depth', -(i*0.2-1));
}

然后返回第一部分 "1 , 0.8 , 0.6, 0.4 , 0.2 "

谁能帮帮我?

jquery loops attr
2个回答
1
投票

一个重复的版本...

http:/jsfiddle.net2wb9koec1

var count = 0;
var i = 1.2;
var ul = jQuery("ul");
var step = -0.2;

while(count<50) {
    if(i===0.2) {
        if(step<0) {
            i = 0;
            step = 0.2;
        }
    } else if(i>=1) {
        if(step>0) {
            i = 1.2;
            step = -0.2
        }
    }

    i = Math.round((i+step)*100)/100;

    ul.append("<li>"+i+"</li>");

    count++;
}

1
投票

我猜你是想跌到0.2,然后再往上走。请看下面的演示,在达到极限后,使用一个方向来递增。

注意,你可能需要更新迭代次数和增量。 你可能需要根据需要更新迭代次数和增量。

var direction = -1, initValue = 1.0, limit = 0.2;
for (var i = 0; i < 10; i++) {
    if (initValue.toFixed(2) < limit) {
        initValue = limit;
        direction = 1;
    }    
    document.getElementById('test').innerHTML += '<p>' + initValue.toFixed(2) +'</p>';
    initValue = initValue + (0.2 * direction);
}
<div id="test"></div>
© www.soinside.com 2019 - 2024. All rights reserved.