Автор Тема: Не могу покрасить строку таблицы  (Прочитано 1048 раз)

09 Июль 2017, 10:59:14
  • Старожил
  • ****
  • Сообщений: 259
  • Репутация: +2/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Здравствуйте.
Создаю свою кастомную страницу в которой есть динамически формируемая скриптом таблица
$.each(my_orders, function() {
html_orders += '<tr>';
html_orders += '<td>'+this.id_order+'</td>';
html_orders += '<td>'+this.date_add+'</td>';
html_orders += '<td>'+this.reference+'</td>';
html_orders += '<td>'+this.id_customer+'</span></td>';
html_orders += '<td>'+this.total_paid+'</td>';
html_orders += '<td>'+this.total_paid_real+'</td>';
html_orders += '<td>'+this.credit+'</td>';
html_orders += '<td><input type="checkbox" value="one"></td>';
html_orders += '<td><input type="text" value="0.00"></td>';
html_orders += '</tr>';
}

все работает отлично. Хочу по определенному условию покрасить определенные строки в другой цвет. Сначала решил без условия - просто все строки. Перепробовал штук 10 вариантов - не красятся.
Привожу тот вариант, на котором моя фантазия коничилась
html_orders += '<tr style="bgcolor:#00ff00;">';
Может кто-нибудь поможет? Желательно уже с использованием if (a>b) ... :)
09 Июль 2017, 11:14:55
Ответ #1
  • Ветеран
  • *****
  • Сообщений: 16667
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
Класс присваивать или с вообще стилями обойтись можно.
09 Июль 2017, 11:17:04
Ответ #2
  • Старожил
  • ****
  • Сообщений: 259
  • Репутация: +2/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Класс присваивать
Я уже пытался, видимо не правильно как-то
Я просто не стал перечислять все неудачные попытки
09 Июль 2017, 11:19:13
Ответ #3
  • Ветеран
  • *****
  • Сообщений: 16667
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
/* нечетная строка  */
.mytable tr:nth-child(2n+1){ ...
/* четная строка  */
.mytable tr:nth-child(2n){ ...
или
.mytable tr { ... 1-я строка
.mytabletr + tr { ... 2-я строка
.mytable tr + tr + tr { ... 3-я строка
.....
09 Июль 2017, 11:20:25
Ответ #4
  • Ветеран
  • *****
  • Сообщений: 16667
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
Класс присваивать
Я уже пытался, видимо не правильно как-то
Я просто не стал перечислять все неудачные попытки
Класс прямо в tpl для тега
<table class="mytable"
09 Июль 2017, 11:26:44
Ответ #5
  • Старожил
  • ****
  • Сообщений: 259
  • Репутация: +2/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Класс прямо в tpl для тега
Это понял, спасибо.
А дальше как и где связываются между собой "if (a>b)", ".maytable tr" и "color"?
У меня уже после часа всевозможных комбинаций, перестановок, форумов, справочников полный взрыв серого вещества.
09 Июль 2017, 11:47:05
Ответ #6
  • Ветеран
  • *****
  • Сообщений: 86688
  • Репутация: +25428/-0
  • Сообщество PrestaShop
    • Просмотр профиля
09 Июль 2017, 11:52:08
Ответ #7
  • Старожил
  • ****
  • Сообщений: 259
  • Репутация: +2/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Справочник javascript: if - http://javascript.ru/IF
Согласен, переборщил с формулировкой, но остальная часть вопроса все-равно актуальна:
А дальше как и где связываются между собой  ".maytable tr" и "color"?
09 Июль 2017, 12:00:18
Ответ #8
  • Ветеран
  • *****
  • Сообщений: 86688
  • Репутация: +25428/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Не понятно, что связывать?
var class = '';
if (condition)
  class='class_red';
else
  class='class_black';
потом используйте переменную class, которая содержит название класса
09 Июль 2017, 12:20:20
Ответ #9
  • Старожил
  • ****
  • Сообщений: 259
  • Репутация: +2/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Не понятно, что связывать?
var class = '';
if (condition)
  class='class_red';
else
  class='class_black';
потом используйте переменную class, которая содержит название класса
Переформулирую свой вопрос:
Какой класс, стиль или атрибут добавить в описание динамически формируемой строки в таблице для изменения цвета этой строки по условию condition?
$.each(my_payms, function() {
if (condition)
html_carts += '<tr красный_цвет>';
else
html_carts += '<tr>';
html_carts += '<td>Вася</td>';
        ...
09 Июль 2017, 12:44:05
Ответ #10
  • Ветеран
  • *****
  • Сообщений: 3419
  • Репутация: +79/-6
  • Сообщество PrestaShop
    • Просмотр профиля
Тот который ты сам создашь в файле css. Называй его как хочешь.
09 Июль 2017, 12:55:22
Ответ #11
  • Старожил
  • ****
  • Сообщений: 259
  • Репутация: +2/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Тот который ты сам создашь в файле css. Называй его как хочешь.
Я хотел бы попробовать обойтись без изменения файлов css.
Возможно это?
Если нет,  то так?
$.each(my_payms, function() {
if (condition)
html_carts += '<tr class='class_red'>';
else
html_carts += '<tr class='class_black'>';
html_carts += '<td>Вася</td>';
        ...
09 Июль 2017, 12:57:36
Ответ #12
  • Ветеран
  • *****
  • Сообщений: 3419
  • Репутация: +79/-6
  • Сообщество PrestaShop
    • Просмотр профиля
Можно и без измений
html_carts += '<tr style="background:red">';
09 Июль 2017, 13:01:01
Ответ #13
  • Старожил
  • ****
  • Сообщений: 259
  • Репутация: +2/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Можно и без измений
html_carts += '<tr style="background:red">';
этот вариант не работает (почти такой уже стоит в моем первом посте)
поэтому я сюда и обратился
09 Июль 2017, 13:04:20
Ответ #14
  • Ветеран
  • *****
  • Сообщений: 3419
  • Репутация: +79/-6
  • Сообщество PrestaShop
    • Просмотр профиля
Спорим что сработает?
Почти да не такой, сам найди отличия  ;)