使用Kendo网格,我需要一种方法来检查网格上特定单元格的数据。我想返回单元格所在的列名称。列具有静态字段名称,但具有动态标题。我需要根据字段名称检索标题。
代码:
function checkAllTemperatures(data) {
var columns = ['Temp1','Temp2','Temp3','Temp4','Temp5'];
var comment = '';
for (var i = 0; i < columns.length; i++) {
comment += checkTemperature(data, columns[i]) + ', ';
}
//removes trailing comma and whitespace from comment
comment = comment.replace(/,\s*$/, "");
setComment(data, comment);
}
function checkTemperature(data, columnName) {
var comment = '';
var matlSpec = GetMaterialSpecs(data.ProductId);
var changedData = data[columnName];
if(changedData > matlSpec.TemperatureUpperLimit || changedData < matlSpec.TemperatureLowerLimit)
{
var columnTitle = grid.columns.find(function(v, i) { return grid.columns[i].field == columnName; }).title;
comment = columnTitle + ' = ' + changeData;
CommonFunctions.OpenErrorWindow({message: 'Temp is out of specification!', Errors:'', errors:''});
}
return comment;
}
在Google Chrome中调试时,在控制台中运行此命令:grid.columns.find(function(v, i) { return grid.columns[i].field == "Temp1"; }).title
会返回正确的标题,但在IE11中运行时出现此错误:
0x800a01b6 - JavaScript运行时错误:对象不支持属性或方法&#39; find&#39;
在Chrome控制台中使用该命令时,实际运行程序chrome时会出现此错误:
未捕获的ReferenceError:未定义changeData
关于此代码断开的原因的想法:
1)由于kendo网格,Jquery被初始化了两次,打破了它。
2)IE11不支持.find()
要修复哪些想法?
答案 0 :(得分:3)
您可以找到Array.find方法towards the bottom of this page的polyfill。 IE在任何时候都不支持Array.find。 Edge确实支持它。