我想根据条件将负值染成红色,我现在这样做:
$('td.numeric:contains('-')").addClass("negative")
上面的代码找到td,其类名为numeric,如果value包含' - ',则它将类'negative'应用于该td。
我的问题是,如果我将数字类应用于例如日期值,其中也包含' - '作为分隔符,并使日期为红色。
所以我的问题是,如何找到值为' - '的td?
喜欢
$('td.numeric:startwith('-')").addClass("negative")
CSS
.numeric { text-align:right; }
.negative { text-align:right; color:red; }
答案 0 :(得分:1)
您可以使用filter()
:
$("td.numeric").filter(function() {
return $.trim($(this).text()).indexOf("-") == 0;
}).addClass("negative")
答案 1 :(得分: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
}
}
});
答案 2 :(得分:0)
这样写:
$('td.numeric').filter(function(){return this.innerHTML[0] === '-';});
或更安全:
$('td.numeric').filter(function(){return this.innerHTML.match(/^\s*-/;});
在jquery选择器中放入很多函数只会伤害性能,使用过滤器是更好的选择。