0

我想根据条件将负值着色为红色,我现在这样做:

$('td.numeric:contains('-')").addClass("negative")

上面的代码找到类名 numeric 的 td,如果 value 包含“-”,它将类“negative”应用于该 td。

我的问题是,如果我将数字类应用于例如还包含“-”作为分隔符的日期值并使日期变为红色。

所以我的问题是,我怎样才能找到以'-'开头的值的 td?

喜欢

$('td.numeric:startwith('-')").addClass("negative")

CSS

.numeric {  text-align:right; }
.negative { text-align:right; color:red; }
4

3 回答 3

1

您可以使用filter()

$("td.numeric").filter(function() {
    return $.trim($(this).text()).indexOf("-") == 0;
}).addClass("negative")
于 2012-10-30T11:00:02.400 回答
0

这样写:

$('td.numeric').filter(function(){return this.innerHTML[0] === '-';});

或更安全的:

$('td.numeric').filter(function(){return this.innerHTML.match(/^\s*-/;});

将很多函数放在 jquery 选择器中只会损害性能,使用过滤器是更好的选择。

于 2012-10-30T11:14:21.180 回答
0

尝试这个:

$("td").each(function() {
var text = $(this).text();
if (/[+-]?\d+(\.\d+)?/.test(text)) {
 var num = parseFloat(text);
 if (num < 0) {
   $(this).addClass("negative"); //add negative class
 } else if (num > 0) {
    $(this).addClass("positive"); //add positive class
 }

 }
 });
于 2012-10-30T11:01:55.687 回答