2016-06-21 70 views
-2

我看到一个看起来很好的代码语法错误,也错误没有意义,这表明有一些犯规。但是,我似乎无法确定它。在第一行,“aoColumns: [”它声明在语句前有一个缺失的分号。这是有问题的代码:语法错误:缺少;之前的声明

<script type="text/javascript"> 
"aoColumns": [ 
     { "sTitle": "", "mData": null, "bSortable": false, "sClass": "head0", "sWidth": "55px", 
     "render": function (data, type, row, meta) { 
      if (data.IsDirectory) { 
      return "<a href='#' target='_blank'><i class='fa fa-folder'></i>&nbsp;" + data.Name +"</a>"; 
      } else { 
      return "<a href='/" + data.Path + "' target='_blank'><i class='fa " + getFileIcon(data.Ext) + "'></i>&nbsp;" + data.Name +"</a>"; 
      } 
     } 
     } 
    ] 
"fnCreatedRow": function(nRow, aData, iDataIndex) { 
     if (!aData.IsDirectory) return; 
     var path = aData.Path; 
     $(nRow).bind("click", function(e){ 
     $.get('/files?path='+ path).then(function(data){ 
      table.fnClearTable(); 
      table.fnAddData(data); 
      currentPath = path; 
     }); 
     e.preventDefault(); 
     }); 
    }; 
    </script> 
+1

通常由虚假的兔耳,支具,括号或不匹配的括号引起。 –

+1

'“aoColumns”:[如果它不在对象初始值设定项内,则语法错误。 –

+0

你在使用图书馆吗? –

回答

1

你有什么看起来像一个对象初始化的内容,但没有开始和一个结束。举例来说,这是有效的:

var object = { 
"aoColumns": [ 
     { "sTitle": "", "mData": null, "bSortable": false, "sClass": "head0", "sWidth": "55px", 
     "render": function (data, type, row, meta) { 
      if (data.IsDirectory) { 
      return "<a href='#' target='_blank'><i class='fa fa-folder'></i>&nbsp;" + data.Name +"</a>"; 
      } else { 
      return "<a href='/" + data.Path + "' target='_blank'><i class='fa " + getFileIcon(data.Ext) + "'></i>&nbsp;" + data.Name +"</a>"; 
      } 
     } 
     } 
    ], 
"fnCreatedRow": function(nRow, aData, iDataIndex) { 
     if (!aData.IsDirectory) return; 
     var path = aData.Path; 
     $(nRow).bind("click", function(e){ 
     $.get('/files?path='+ path).then(function(data){ 
      table.fnClearTable(); 
      table.fnAddData(data); 
      currentPath = path; 
     }); 
     e.preventDefault(); 
     }); 
    } 
}; 

的变化是:

  • 添加var object = {顶部
  • 卸下;从曾经是在结束};,使其只}
  • 添加一个};关闭对象
  • 添加一个,aoColumns阵列上的收盘]
0
var obj = { 
    "key": value 
}; 

哪里是你的大括号?你只是试图定义对象键而不把它们放在对象上,所以这就是为什么你会得到语法错误。

var my_object = { 
    "aoColumns": [ 
     // code here 
    ], 
    "fnCreatedRow": function(nRow, aData, iDataIndex) { 
     // function definition here 
    } 
}; 
0

你在那里有没有有效的JavaScript语法。

假设你想分配一个数组变量aoColumns,请执行以下操作:

var aoColumns = [ 
    { "sTitle": "", "mData": null, "bSortable": false, "sClass": "head0", "sWidth": "55px", 
    "render": function (data, type, row, meta) { 
     if (data.IsDirectory) { 
     return "<a href='#' target='_blank'><i class='fa fa-folder'></i>&nbsp;" + data.Name +"</a>"; 
     } else { 
     return "<a href='/" + data.Path + "' target='_blank'><i class='fa " + getFileIcon(data.Ext) + "'></i>&nbsp;" + data.Name +"</a>"; 
     } 
    } 
    } 
] 

同样的事情fnCreatedRow

如果您正在尝试创建一个JavaScript对象与上面提到的两个元素相反,请查看其他答案。

相关问题