.find()Jquery函数IE11不支持?

时间:2017-07-20 20:43:11

标签: javascript jquery asp.net-mvc kendo-ui kendo-grid

使用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()

要修复哪些想法?

1 个答案:

答案 0 :(得分:3)

您可以找到Array.find方法towards the bottom of this page的polyfill。 IE在任何时候都不支持Array.find。 Edge确实支持它。