我试图生成一个位置变化表,它找到小于零的值,使这些值变为红色,添加一个类来激活向下箭头,并从负值中删除减号。
一切正常,但我无法删除减号。我试过乘以-1和Math.abs(),但没有任何效果。我也没有在控制台中收到错误。
正在从csv数据中填充值。
$('.move').filter(function() {
var neg = $(this).text() < 0;
return Math.abs(neg);
}).css( "color", "#ff0000" ).addClass('down');
非常感谢任何帮助。
答案 0 :(得分:0)
您是否尝试使用$(this).text()
明确地将parseInt
解析为某个数字?
编辑:
顺便说一下,你的过滤器是错误的
$('.move').filter(function() {
var number = $(this).text();
var isNeg = number < 0;
$(this).text(isNeg ? Math.abs(number) : number);
return isNeg;
}).css( "color", "#ff0000" ).addClass('down');
答案 1 :(得分:0)
您应首先使用text()
解析parseInt
返回的文本(将字符串值转换为数字):
$('.move').filter(function() {
// This filter function will keep only negative integers
var val = parseInt($(this).text(), 10);
return !isNaN(val) && val < 0;
}).css( "color", "#ff0000" ).addClass('down');
如果要删除负号,则需要更改通过过滤函数的每个元素的文本。但是,如果运行两次或更多(负数现在显示为正数),删除“ - ”符号将改变过滤器功能的行为,因此请注意这一点。
... .addClass('down').each(function () {
$(this).text($(this).text().replace('-', ''));
});