HTML
<div id="a" class="ele">0</div>
<div id="b" class="ele">1</div>
<div id="c" class="ele">2</div>
jQuery的
$('.ele').each(function() {
var eleH = 100;
var add = 10;
$('.ele').eq(X); //trying to get value here
switch(X) {
case 0:
$('.ele').css({'height': (eleH + add) + 'px'}); // #a { height:110px}
break;
case 1:
$('.ele').css({'height': (eleH + (add*2)) + 'px'}); // #b { height:120px}
break;
case 2:
$('.ele').css({'height': (eleH + (add*3)) + 'px'}); // #c { height:130px}
break;
}
});
答案 0 :(得分:2)
我不确定你想做什么,但如果你想根据它的位置更改CSS propierty,你可以这样做:
$('.ele').each(function(i) {
$(this).css('height', 100 + (10*i));
});
以下是工作版本:http://jsfiddle.net/Aw39W/6/
答案 1 :(得分:1)
答案 2 :(得分:0)
不确定你要在这里实现什么,因为你似乎不是在元素本身上设置高度,而是在其他元素project
上设置高度。快速连续设置和覆盖它的高度3次只会看起来只有最后的循环迭代发生。
无论如何,从理论上讲,您的代码可以像这样进行优化。值得记住的是each()
传递了一个参数,表示正在处理的元素的索引。
var height = 100, add = 10;
$('.ele').each(index) {
project.css({height: height + (add * index)});
});
另请注意,我在循环外声明维度变量 - 无需继续重新定义这些变量。