3

我正在尝试根据 eq() 值更改一组 div 的“左”属性。我将展示我正在尝试做的基本代码!任何帮助将不胜感激

HTML:

<html>
<body>
<div class"item-holder"></div>
  <div class"item item-one"></div>
  <div class"item item-one"></div>
  <div class"item item-one"></div>
  <div class"item item-one"></div>
</div>
</body>
</html>

CSS:

.item-holder {
position:relative;
width:100px;
}
.item {
position:absolute;
width:25px;
float:left;
}

jQuery:

$(document).ready(){
var itemWidth = $('.item-holder').width()/$('.item').size();
  $('.item').css({
    'left':$('.this').eq()*itemWidth+'px'
  });
};

请不要这不是完整的代码,如果它更有意义,我可以发布它,我需要在 jQuery 中创建左值的原因是因为我想在几个不同的地方重用这段代码,并且将使用不同的数字'项目' 每次!欢迎任何帮助并被采纳

4

2 回答 2

2

您似乎需要的是索引

$('.item').each(function(){
    $(this).css({
       'left':$(this).index()*itemWidth+'px'
    });
});

请注意,您的代码中有一些错误:

  • 你可能不想关闭你的第一个 div 并让它为空
  • 设置类时,不要忘记=操作符

示范

于 2012-10-07T18:09:02.467 回答
2

你可以使用css 函数

.css(属性名,函数(索引,值))

$('.item').css('left', function(ind, v){
    return (ind * itemWidth) + 'px'
})

请注意,通过使用$('.this'),您将选择具有类的元素,以便从您应该编码的对象this创建一个 jQuery 对象。this$(this)

于 2012-10-07T18:11:08.793 回答