Следующие работы, хотя это может быть немного вычислительно интенсивно, итерируя по каждому td
и , запуская if
на каждом; но я могу думать только об этом, поэтому я предлагаю:
$('td').each(
function(){
var numberString = parseInt($(this).text(), 10);
if (numberString == 'NaN') {
return false;
}
else if (numberString > 3000) {
$(this).addClass('classForValuesOverThreeThousand');
}
});
JS Fiddle demo .
<час />
Отредактировано после того, как я понял, что пропустил первую часть вопроса.
Следующее, честно говоря, ужасно; но это работает. И допускает любое количество строк и столбцов; если у кого-то есть идеи получше, я был бы более чем рад предложениям о том, как улучшить это (не стесняйтесь редактировать улучшения в 1 , если в какой-то момент он станет CW, это нормально; лучше узнать, как улучшить следующее, чем беспокоиться о представителе):
var n, vals = [];
$('tr').each(
function(r){
$(this).find('td').each(
function(c){
n = [parseInt($(this).text(), 10)];
if (parseInt(n) == parseInt(vals[c])){
$(this).text('');
}
vals[c] = n;
if (vals[c] > 3000) {
$(this).addClass('classForValuesOverThreeThousand');
}
});
});
JS Fiddle demo .
<ч />
Отредактировано для адресации последнего комментария (к вопросу) из ФП:
[I] хочет скрыть все значения, которые были показаны ранее в этом столбце. [Если] отображается значение> 3000, закрасьте первое и удалите остальные.
var n, vals = [];
$('tr').each(
function(r){
$(this).find('td').each(
function(c){
n = [parseInt($(this).text(), 10)];
if (parseInt(n) == parseInt(vals[c])){
$(this).text('');
}
vals[c] = n;
if (vals[c] > 3000 && $(this).text().length) {
$(this).addClass('classForValuesOverThreeThousand');
}
});
});
JS Fiddle demo .
Вышеуказанное удаляет дублированное значение из ячейки, а затем проверяет, что это значение> 3000 и , что текст присутствует.
<час />
1. Если вы можете добавить правку, добавьте / те правки (-и) к опубликованного ответа, а не перезаписывайте их, чтобы он постепенно улучшался, и каждый этап можно было увидеть ...