Javascript jQuery$.map在IE8中工作,但在IE7中不工作

Javascript jQuery$.map在IE8中工作,但在IE7中不工作,javascript,jquery,arrays,internet-explorer-8,internet-explorer-7,Javascript,Jquery,Arrays,Internet Explorer 8,Internet Explorer 7,使用jQuery1.9.1和IE8,但是页面也需要在IE7中工作。在导致问题的部分之前的代码中,我读取了一些数据并构建了一个数组,该数组是SELECT语句。在我遇到问题的代码部分,我正在执行以下操作: var found = $.map( mySelArr, function(val) { return val.mySelID === zSelID ? val.mySelStatement: null; }); 然后我引用它: var selStmt = found[0];

使用jQuery1.9.1和IE8,但是页面也需要在IE7中工作。在导致问题的部分之前的代码中,我读取了一些数据并构建了一个数组,该数组是
SELECT
语句。在我遇到问题的代码部分,我正在执行以下操作:

var found = $.map( mySelArr, function(val) {
   return val.mySelID === zSelID ? val.mySelStatement: null;
   });
然后我引用它:

var selStmt = found[0];  
(将只返回1个,我知道它将在数组中)

在IE7中,我看到它在jquery.js中抛出了一个异常。当我逐步调试它时,我看到找到的长度是零(在IE7中)。如果我把模式改为IE8,一切都正常。但是在IE7中,
found
变量中没有任何内容

在IE7中无法获取此数组值,这有什么不对?如果您有任何想法,我将不胜感激

编辑

mySelArr是一个Select语句数组,类似于:

1,<select name='mySelID_1' id='plist' ><option selected='selected' disabled='disabled' value='0'>Select Action</option><option value="1">This one</option><option value="2">That one</option></select>
只有数字的一个是通过以下方式构建的:

arr2.push(arrndx)
arr2是外部的,arr1是内部的。我使用以下方法参考了数字索引:

var z = arr2[x][0];
获取数字&然后使用该数字循环通过arr1以获取与之匹配的所有内容&构建Select语句。我发现IE7在上面的代码行中返回了
undefined
,而IE8则返回了数字(Firefox也是)

我更改了两行代码以解决此问题:

FROM   arr2.push(arrndx) 
TO     arr2.push( {arrindex: arrndx} );

它在IE7和IE8中都有效。IE7在创建或读取该数组时没有问题,只是因为我试图引用数组中的字段,所以该数组中的数据无效


我不确定IE7为什么会有问题&IE8没有,但是。。。。此外,修复程序似乎没有破坏任何其他功能。

当我尝试运行此程序来创建测试用例时,我得到了
意外标记:
,因为这部分:
val:mySelStatement:null三元运算符中只能有一个“else”。有关mySelArr内容的示例,请参阅已编辑的问题@JasonP-我试过了,但也没有返回任何东西。你是想写
return val.mySelID===zSelID吗?val.mySelStatement:null那么您有一个名为mySelID的属性,它不在您给出的示例中?不应该
val:mySelStatement
val.mySelStatement
。你的问题缺少很多上下文,很难给你答案。记录在案,IE8中有很多有用的东西,IE7中没有。我花了大量时间让clone()正常工作。
FROM   arr2.push(arrndx) 
TO     arr2.push( {arrindex: arrndx} );
FROM   arr2[x][0]
TO     arr2[x].arrindex