Проверьте количество элементов списка и колонизируйте, если условие существует - PullRequest
0 голосов
/ 25 августа 2010

Пример страницы: http://vincent -massaro.com / columns / columns.html

На этой странице есть два упорядоченных списка, один с четырьмя элементами и один с восемью,Мне нужно написать условие, которое проверяет, сколько элементов списка в каждом упорядоченном списке, и, если их больше четырех, разбить их на столбцы;если их меньше четырех, не разбивайте на столбцы.Код, который выполняет это сейчас:

$ ('. Mcol', this) .makeacolumnlists ({cols: 3, colWidth: 0, equalHeight: 'ul', startN: 1});

Заранее спасибо!

Ответы [ 3 ]

1 голос
/ 25 августа 2010

Если вы хотите length свойство <li> элементов в <ol>, вам нужно получить его отдельно для каждый <ol>.

$('ol').each(function() {
    $(this).children('li').length;  // Gives you the number of <li>
                                    //    elements for the current <ol>
});
1 голос
/ 25 августа 2010

Один хороший способ - с помощью пользовательского селектора.Примерно так:

$.expr[':'].hasmorethan4li = function(obj){
  return $(obj).children('li').length > 4;
};

Позволяет вам сделать это:

$('ol:hasmorethan4li').makeacolumnlists(....);

Обновлено: В соответствии с вопросом ОП из комментариев, вот версия селектора для списков от 4 до 12 элементов:

$.expr[':'].hasbetween4and12li = function(obj){
  var len = $(obj).children('li').length; // so we only have to run this once
  return len >= 4 && len <= 12;
};
1 голос
/ 25 августа 2010

проверьте количество ли, используя $('li').size()

...