Разрыв цикла для каждого 5-го цикла - PullRequest
1 голос
/ 07 сентября 2011

Я хотел бы добавить простой фрагмент кода в мой HTML (элемент списка) для каждого 5-го цикла.

Вот мой код:

 if (jsonData != null && jsonData.length > 0){
     for (i=0;i<jsonData.length;i++){
         if( jsonData[i].name.length > 15 ) 
                 cname = jsonData[i].name.substr(0,15);
         else cname = jsonData[i].name ;
         resHTML += '<li><a title="'+ jsonData[i].name +'" href="'+ jsonData[i].link +'"><img width="137" height="175" alt="'+ jsonData[i].name +'" src="'+ jsonData[i].img +'"></a><br><a href="'+ jsonData[i].link +'">'+ cname +'</a></li>' ;

     }
 }

Таким образом, для каждого 5-го цикла <li> станет <li style="margin-right:0">

Может кто-нибудь показать мне, как это сделать?

Спасибо

Ответы [ 5 ]

6 голосов
/ 07 сентября 2011
if ((i % 5) == 0)
  // add your margin stuff

В основном, модуль (остаток от i, деленный на 5) будет 0 каждые 5 итераций

5 голосов
/ 07 сентября 2011

Вам не нужно обрабатывать это с помощью JavaScript.

Используйте этот простой CSS:

li + li {
    margin-left: 20px;
}

Это будет применяться margin-left ко всем, кроме первого li, что должно совпадать с применением margin-right ко всем, кроме последнего li.

+ - это соседний селектор брата .

1 голос
/ 07 сентября 2011

Одной из возможностей было бы проверить, если i % 5 == 0, это будет принимать значение true каждые 5 итераций цикла.

код:

for(i = 0; i < n; i++)
{
    if(!(i % 5))
    {
        //every fifth iteration!
    }
}
0 голосов
/ 07 сентября 2011
if((i%5)==0)
   resHTML += "<li style=\"margin-right:0\">"
else
   restHTML += "<li>"
restHTML += "<add all other stuff after li >"
0 голосов
/ 07 сентября 2011

Я бы .. установил for(i = 1; i <= jsonData.length; i++)

Затем выполните:

if((i % 5) == 0) { // margin code }

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...