последовательные <li>классы - PullRequest
0 голосов
/ 12 июня 2009

У меня проблемы с поиском выражения для автоматического создания нового «класса», например:

<ul>
<li class="img1">link</li>
<li class="img2">link</li>
<li class="img3">link etc...</li>
</ul>

Это вложено в 2 вкладки для «самых читаемых» / «последних комментариев». Разные классы таковы, что я могу сделать другую марку (число) с помощью CSS; на самом деле <li> классы должны давать стилизованное, а не обычное (маркированное) число

Я ожидаю, что мне понадобится JavaScript для генерации 6 классов для использования вместе с вызовами WordPress для получения последних комментариев и подачи в RSS.

Я подумал, что это должно быть просто найти, но пока что много форумов WordPress, Google и т. Д .; Кроме того, у меня нет опыта программирования на JavaScript.

Буду признателен за любое потенциальное решение.

Ответы [ 5 ]

1 голос
/ 13 июня 2009

Этот код будет генерировать добавочные классы:

<?
class linkClass
{
        public static $n;
        public function next()
        {
                return self::$n++;
        }
}
?>

<? linkClass::$n = 1; ?>
<ul>
  <li class="link<? print(linkClass::next());?>">link</li>
  <li class="link<? print(linkClass::next());?>">link</li>
  <li class="link<? print(linkClass::next());?>">link</li>
</ul>

Вы бы поставили "print (linkClass :: next ());" в строке, генерирующей ссылки, такие как (не настоящий пример):

foreach($links as $link)
  echo '<li class='.linkClass::next().'>'.$link.'</li>';
1 голос
/ 12 июня 2009

Если бы он был пронумерован, вы бы не использовали упорядоченный список? <ol>.

Или, может быть, мне здесь не хватает точки. Вы используете язык более высокого уровня для создания этого HTML? или инструмент?

0 голосов
/ 13 июня 2009

Использование jQuery :

$(function(){
  $('ul.special').each(function() {
    $('li', this).each(function(i) { this.addClass('img'+i.toString()); });
  });
});

Это написано на макушке с краткой ссылкой. Я предлагаю вам проверить jQuery для получения дополнительной информации и т. Д.

0 голосов
/ 13 июня 2009

Насколько я понимаю, вы хотите распечатать неупорядоченный список, в котором каждый элемент списка имеет уникальный класс, который увеличивается на 1 каждый раз при печати элемента списка?

У меня нет опыта работы с Wordpress, но разве это нелегко сделать с помощью переменной, которую вы увеличиваете каждый раз при печати элемента списка?

Например:

<ul>
  <li class="<?php echo "img","$i"; ?>>link</li><?php $i++; ?>
  <li class="<?php echo "img","$i"; ?>>link</li><?php $i++; ?>
  <li class="<?php echo "img","$i"; ?>>link etc...</li><?php $i++; ?>
</ul>

Кроме того, вы можете создать функцию, которая выполняет следующие действия: 1) Распечатайте номер 2) Увеличьте значение числа на единицу, чтобы при следующем вызове функции было напечатано большее значение

Это позволит вам сделать следующее:

function classImg() {
  echo "img", "$i";
  $i++;
}

<ul>
  <li class="<?php classImg(); ?>>link</li>
  <li class="<?php classImg(); ?>>link</li>
  <li class="<?php classImg(); ?>>link etc...</li>
</ul>

Я записал это на макушке, и поэтому, вероятно, есть ошибки, но я надеюсь, вы понимаете, к чему я клоню.

0 голосов
/ 12 июня 2009

Вы можете сгенерировать классы на стороне сервера или использовать javascript, если вы хотите, чтобы они изменялись во время выполнения.

...