Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript .find()Jquery函数在IE11中不受支持?_Javascript_Jquery_Asp.net Mvc_Kendo Ui_Kendo Grid - Fatal编程技术网

Javascript .find()Jquery函数在IE11中不受支持?

Javascript .find()Jquery函数在IE11中不受支持?,javascript,jquery,asp.net-mvc,kendo-ui,kendo-grid,Javascript,Jquery,Asp.net Mvc,Kendo Ui,Kendo Grid,使用剑道网格时,我需要一种方法来检查网格上特定单元格的数据。我想返回单元格所在的列名。列具有静态字段名,但具有动态标题。我需要根据字段名检索标题 代码: function checkAllTemperatures(data) { var columns = ['Temp1','Temp2','Temp3','Temp4','Temp5']; var comment = ''; for (var i = 0; i < columns.length; i++) {

使用剑道网格时,我需要一种方法来检查网格上特定单元格的数据。我想返回单元格所在的列名。列具有静态字段名,但具有动态标题。我需要根据字段名检索标题

代码:

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;
}
功能检查所有温度(数据){
var列=['Temp1','Temp2','Temp3','Temp4','Temp5'];
var注释=“”;
对于(var i=0;i材料规格温度上限| |更改数据<材料规格温度下限)
{
var columntTitle=grid.columns.find(函数(v,i){return grid.columns[i].field==columnName;}).title;
注释=columnTitle+'='+changeData;
CommonFunctions.OpenErrorWindow({message:'Temp超出规范!',错误:“”,错误:“”});
}
回复评论;
}
在Google Chrome中调试时,在控制台中运行以下命令:
grid.columns.find(函数(v,i){return grid.columns[i].field==“Temp1”})。title
返回正确的标题,但在IE11中运行时,我遇到以下错误:

0x800a01b6-JavaScript运行时错误:对象不支持属性或方法“find”

Dispite在Chrome控制台中运行的命令,当实际运行Chrome程序时,会出现以下错误:

未捕获引用错误:未定义changeData

关于此代码为何中断的想法:

1) Jquery被初始化了两次,因为剑道网格破坏了它

2) IE11不支持.find()


有什么解决方法吗?

您可以为Array.find方法找到一个polyfill。IE在任何时候都不支持Array.find。Edge确实支持它。

第二个错误是因为输入错误(您初始化了changedData,然后使用changeData(注意缺少d)。第一个错误是因为
grid。columns
不是jQuery对象,而是常规数组,而不是
find()
您可以使用
filter().pop()
。至少IE11(以及所有现代浏览器)都支持这一点。