Javascript 在js文件中使用数组

Javascript 在js文件中使用数组,javascript,internet-explorer,Javascript,Internet Explorer,我在JS文件中有以下数组: var arrayPriority = [ { classPrio : "hoverLineTable", color : "#99bfe6" }, { classPrio : "selectionLigneTable", color : "#FEDA84" }, { classPrio : "jqGrCorres

我在JS文件中有以下数组:

   var arrayPriority = [
      {
         classPrio : "hoverLineTable",
         color : "#99bfe6"
      },
      {
         classPrio : "selectionLigneTable",
         color : "#FEDA84"
      },
      {
         classPrio : "jqGrCorrespondance",
         color : "#CAFDA8"
      }
   ];
它工作得很好,除了在IE中,我在
classPrio:“hoverLineTable”
一行中得到这个错误:

应为标识符、字符串或数字


问题是什么?我如何解决它?

以下是调试脏浏览器的脏方法:

<script>alert(1);</script>
<script src="file1.js"></script>
<script>alert(2);</script>
<script src="file2.js"></script>
<script>alert(3);</script>
警报(1);
警报(2);
警惕(3);
假设发生了以下情况:

  • 警报“1”
  • 警报“2”
  • 错误

  • 然后,错误位于警报2和警报3之间。重复此过程,将警报插入
    file2.js
    ,以定位错误行。

    我很抱歉,我发现问题是因为我没有修改好的文件,所以我让好的文件如下所示:

     var arrayPriority = [
          {
             class : "hoverLineTable",
             color : "#99bfe6"
          },
          {
             class : "selectionLigneTable",
             color : "#FEDA84"
          },
          {
             class : "jqGrCorrespondance",
             color : "#CAFDA8"
          }
       ];
    
    当我们使用关键字:class时,看起来旧版本的InternetExplorer不喜欢。所以,如果我把“classPrio”放进去,那就是工作


    感谢您的帮助

    您只需将按键用双引号括起来即可

    var arrayPriority = [
          {
             "classPrio" : "hoverLineTable",
             "color" : "#99bfe6"
          },
          {
             "classPrio" : "selectionLigneTable",
             "color" : "#FEDA84"
          },
          {
             "classPrio" : "jqGrCorrespondance",
             "color" : "#CAFDA8"
          }
       ];
    

    这是一个JavaScript数组,不是JSON。我看不出有什么问题。@Kvasir:如果它是JSON,A)它不会出现在JavaScript源代码中(除非它在字符串中),B)属性名称会用双引号引起来。@利亚姆:不,JSON是一种数据表示法,JavaScript是一种编程语言。JSON是JavaScript对象初始值设定项语法的一个子集。选中逗号。@Liam:JSON是数据格式,JavaScript是编程语言。它们几乎不是一回事。相同的部分可能看起来相似,但这并不意味着相同。Duck类型在这里不适用。事实上
    class
    是一个保留关键字:-)是的,但它在chrome和firefox以及IE 11上都可以使用,但在另一个verison上不能使用,但现在我知道不能使用这个;)浏览器之间存在许多差异,这就是“跨浏览器测试”的原因:-D@wawawared&Kvasir:在ES3中,保留字不能用作文本属性名(在对象初始值设定项中,或在
    foo.propName
    等中),这就是为什么DOM在DOM元素上有
    className
    而不是
    class
    htmlFor
    而不是
    for
    。这一点在ES5(大约六年前)中发生了变化,ES5允许它们存在,因为它们实际上并不含糊不清(
    someElement.for
    中的
    for
    不可能启动
    for
    循环)。像IE8这样早于ES5的旧浏览器应用了旧规则。现代浏览器应用当前规则。@Kvasir您应该发布正确的数组:(不,你不知道。JS属性名可以是字符串或标识符。保留引号(至少对于那些名称)是可以的。@Quentin:然而,有趣的是,如果OP真的发布了,这个答案应该是正确的(对于像IE8这样的旧浏览器)@Quentin Yes.。我假设他使用了某种属性。它被认为是一个类,是一个关键字,它需要在引号内。@T.J Crowder负面评价,尽管我是对的。(@Swaprks:嗯,你发布它的时候它是错的。:-)但是是的,它是对的(对于旧浏览器)现在OP已经改变了一切。Beign Downvote是当你试图为一个无用的问题提供帮助时需要支付的账单,非常感谢你的朋友-|