【问题标题】:Loop for custom attr循环自定义属性
【发布时间】:2014-10-10 15:09:39
【问题描述】:

我正在寻找一个可以这样计数的循环

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 "

谁能帮帮我?

【问题讨论】:

  • 到底是什么问题?
  • 您如何尝试将循环与“深度”计算联系起来真的很令人困惑。也许也添加你的html?
  • 需要继续重复吗?还是只是上下浮动?
  • @emragins 老兄,没有 html - 请正确阅读,有 ul li 并且其中许多都设置了 attr。
  • @Jason 我想从 1-0,2 和 0,2-1 等开始计数 :)

标签: jquery loops attr


【解决方案1】:

重复版本...

http://jsfiddle.net/2wb9koec/1/

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++;
}

【讨论】:

  • 谢谢,这就是我一直在寻找的东西——就像一个魅力!非常感谢
【解决方案2】:

我猜你想下降到 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);
}
&lt;div id="test"&gt;&lt;/div&gt;

【讨论】:

  • 第一次尝试代码 sn-p,我很喜欢。
猜你喜欢
  • 2017-02-04
  • 1970-01-01
  • 1970-01-01
  • 2022-01-17
  • 1970-01-01
  • 1970-01-01
  • 2011-12-06
  • 2017-06-15
  • 2011-03-27
相关资源
最近更新 更多