создание петли с элементами li - PullRequest
1 голос
/ 14 февраля 2011

Я делаю сценарий.Этот центр находится в вертикальном положении.У меня есть этот скрипт:

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

Но теперь у меня много li-предметов.И этот скрипт дает каждому элементу li одинаковое поле.Как я могу изменить этот скрипт?Что скрипт делает это для каждого элемента li?

Ответы [ 4 ]

2 голосов
/ 14 февраля 2011

вы должны использовать свойство jquery.each ():

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

то, что делает .each () - это в основном для всех коллекций jQUery, а $ (this) указывает на текущий li в коллекции

1 голос
/ 14 февраля 2011

Функция css принимает функцию, которую можно использовать для этого без цикла each:

$("#main .logolint li img").css('margin-top', function(){
    return Math.floor(( 70 - $(this).height() ) / 2 );
});
1 голос
/ 14 февраля 2011

Вы можете использовать простой каждый () цикл:

$("#main .logolint li").each(function() {
    var $img = $("img", this);
    var hoogteverschil = Math.floor((70 - $img.height()) / 2);
    $img.css({ marginTop: hoogteverschil });
});
0 голосов
/ 14 февраля 2011

использовать .......

$("#main .logolint li img").each(function(){
  $image = $("img", this);
    var hoogteverschil = Math.floor(( 70 - $image.height() ) / 2 );
    $image.css({ marginTop: hoogteverschil });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...