условное форматирование по отрицательному значению

0

Мне удалось найти несколько примеров и собрать все вместе, чтобы заставить это работать.

$(".status").filter(function () {
    return (/\(\)/).test($(this).html());
})
    .closest(\'td\').css(\'background-color\', \'red\');
});

Однако мне нужно сделать это дальше и оценить отрицательное значение для масштабируемого условного формата.

если значение td положительно, цвет фона будет зеленым. если значение td отрицательное, которое представлено в скобках (###, ###), то я хочу оценить на основе этих условий.

(1) thru (199,999) =  .closest('td').css('background-color', 'yellow');

(200,000) or greater = .closest('td').css('background-color', 'red');
Теги:

1 ответ

1
Лучший ответ

.css() принимает функцию как параметр значения.

Вот одно из возможных решений:

http://jsfiddle.net/JUJBj/

$(".status").filter(function () {
    return (/\(.+\)/).test($(this).html());
}).closest('td').css('background-color', function() {
    var val = parseInt($(this).find('.status').text().replace(/\(|\)/g, ''), 10);
    return val >= 200000 ? 'red' : 'yellow';
});
  • 0
    Я отмечаю это как принятое, но у меня есть вопрос. Ваш пример работает с включенным тегом <span>, почему при удалении тега <span> и присвоении класса <td> он назначает только желтый цвет?
  • 0
    Это из-за части $(this).find('.status') . this td , и после вашего изменения не будет потомка со status класса, так что все не получится. Желтый это просто по умолчанию. Вот обновленная скрипка: jsfiddle.net/ttaA2
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню