未捕获TypeError:无法读取属性'替换'null jqgrid
我是编程新手。当我尝试下面的这个函数时,除非在列中有一个空白单元格,否则它运行良好。如果单元格中有任何空白值,那么它不起作用,然后整个页面变为空白。请帮我解决。未捕获TypeError:无法读取属性'替换'null jqgrid
function growth (cellvalue) {
var gcolor;
var numval=cellvalue
var val = Number(numval.replace("%",""));
if (val<0) {
gcolor = 'red';
} else if (val>0) {
gcolor = 'green';
}
return '<span class="cellWithoutBackground" style="background-color:' + gcolor + ';">' + cellvalue + '</span>';
};
我也尝试过低于这个与不等于null这样if (val !== null && val<0)
function growth (cellvalue) {
var gcolor;
var numval=cellvalue
var val = Number(numval.replace("%",""));
if (val !== null && val<0) {
gcolor = 'red';
} else if (val !== null && val>0) {
gcolor = 'green';
}
return '<span class="cellWithoutBackground" style="background-color:' + gcolor + ';">' + cellvalue + '</span>';
};
都正常工作时,有没有空白单元格。但是当有一个空白单元格时,它不起作用。请帮忙。
UPDATE
function growth (cellvalue) {
var numval=cellvalue
if(numval != null || numval != '' || numval != "")
{
var gcolor;
var val = Number(numval.replace("%",""));
if(val<0) {gcolor = 'red';}
else if(val >0) {gcolor = 'green';}
return '<span class="cellWithoutBackground" style="background-color:' + gcolor + ';">' + cellvalue + '</span>';
};
else{return '<span class="cellWithoutBackground" style="background-color:' + white + ';">' + cellvalue + '</span>';};
条件之前,您应该测试cellvalue != null
试图解析值。测试cellvalue != null
意味着在JavaScript中与cellvalue !== null || cellvalue !== undefined
相同。在这两种情况下,您都不应该使用cellvalue.replace
(或numval.replace
)。
代码中的下一个可能的问题是使用数字值作为输入数据。例如,您可以使用123
而不是"123"
。数字类型没有方法replace
,您可能还有一个错误。我建议您使用String(cellvalue)
将数字转换为字符串,如果它不是字符串。
试着这么做
function growth (cellvalue) {
if (cellvalue == null) { // test for null or undefined
return "";
}
cellvalue = Number(String(cellvalue).replace("%",""));
return '<span class="cellWithoutBackground" style="background-color:' +
(cellvalue < 0 ? 'red' : 'green') +
';">' + cellvalue + '</span>';
}
可以全局设置像
function growth (cellvalue) {
if(cellvalue != null || cellvalue!= '' || cellvalue != "") {
// do stuff here
}
else {
//nothing do
}
}
@Aisf,谢谢,我已经尝试过如下所示:if(val!= null || val!=''|| val!=“”&& val davidb
你试过替换之前?我的意思是检查第一个cellvalue,如果cellvalue不为空/空然后替换它。 –
您仍然面临问题,请先调试,在浏览器开发工具中获取或不使用,或者使用console.log(cellvalue)。 。 。在这里发布价值..让我们看看 –
'遗漏的类型错误:无法读取性能在HTMLTableElement.growth(lsu.php:214)空 的 '替换' 在HTMLTableElement.R [如格式化](jquery.jqGrid (jquery.jqGrid.min.js:12).html.js:11) (jquery.jqGrid.min.js:12) at HTMLTableElement.fa(jquery.jqGrid.min.js:12) at HTMLTableElement。(jquery.jqGrid.min.js:13) at Function.each(jquery.min.js:2) at n.fn.init.each(jquery.min.js:2)'@Asif this taken浏览器日志 –
davidb