2011-02-14 76 views
1

我制作一个脚本。该中心li img项目垂直。我有这个脚本:用li元素制作一个循环

var imageHeight = $("#main .logolint li img").height(); 
    var hoogteverschil = Math.floor((70 - imageHeight)/2); 
    $("#main .logolint li img").css({ marginTop: hoogteverschil }); 

但现在我有很多李项目。而这个脚本,给每个李项目相同的边际。我怎样才能改变这个脚本?脚本为每一件物品都做了这件事吗?

+0

使用jQuery的。每个()函数:) – benhowdle89 2011-02-14 11:14:17

回答

2

,你应该使用jquery.each()属性:

$("#main .logolint li").each(function(){ 
    var img = $(this).find('img'); 
    img.css({ marginTop: Math.floor((70 - img.height())/2) }); 
}); 

的。每个什么()做基本上是通过所有jQuery收藏和$(this)指向集合中的当前li

1

您可以使用一个简单的循环each()

$("#main .logolint li").each(function() { 
    var $img = $("img", this); 
    var hoogteverschil = Math.floor((70 - $img.height())/2); 
    $img.css({ marginTop: hoogteverschil }); 
}); 
+0

感谢您的回答 – Mike 2011-02-14 11:18:20

0

使用.......

$("#main .logolint li img").each(function(){ 
    $image = $("img", this); 
    var hoogteverschil = Math.floor((70 - $image.height())/2); 
    $image.css({ marginTop: hoogteverschil }); 
}); 
1

css函数接受可以用来做这个没有each循环功能:

$("#main .logolint li img").css('margin-top', function(){ 
    return Math.floor((70 - $(this).height())/2); 
});