Класс CSS в зависимости от длины текста элементов списка

#javascript #jquery #css

#javascript #jquery #css

Вопрос:

Есть ли способ задать разные классы элементам в списке в зависимости от длины значения? Предпочтительнее обычный JS или jQuery.

У меня есть список с фиксированной шириной, и количество текста в каждом элементе списка варьируется. Элементы списка имеют фоны, которые нельзя повторить или расширить, и из-за этого мне нужно было бы создать разные фоны (классы) для разной длины текста.

Класс css по умолчанию обработает 1-15 символов, для 15-30 символов потребуется дополнительный класс с расширенным фоном, а для 30-45 символов потребуется другой класс и т.д.

Будучи полным n00b в JS, я просто не могу разобраться в этом, хотя я возился с этим последние два дня…

Заранее большое спасибо,

Эйрик.

Ответ №1:

 $('#myList li').each(function() {
    var length = ($(this).html().length);

    if (length > 30) {
        $(this).addClass('longest');
    }
    else if (length > 15) {
        $(this).addClass('long');
    }
    else {
        $(this).addClass('default');
    }  
});
  

Вот рабочий пример.

Ответ №2:

 $('.listItem').each(function(){
  var content = $(this).html();
  if(var.length > 30){
     $(this).addClass('Over30');
  }
   .....etc
  

Установите это для запуска после загрузки содержимого, например

  $(document).ready(function () {
   $('.listItem').each(function(){
     var content = $(this).html();
     if(var.length > 30){
        $(this).addClass('Over30');
     }
   .....etc
 }