语法错误:丢失;在声明之前

时间:2016-06-21 14:55:33

标签: javascript jquery datatables

我在看似精细的代码上遇到语法错误,错误也没有意义,因此表明存在一些犯规。但是,我似乎无法确定它。在第一行," 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>

3 个答案:

答案 0 :(得分:1)

您所拥有的内容与对象初始值设定项的内容相似,但没有开头和结尾。例如,这是有效的:

=IIf(Fields!HOLDER_UNIT.Value = 'BOX', Sum(Fields!f1.Value) + Sum(Fields!f3.Value),0)

变化是:

  • 在顶部添加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

答案 1 :(得分:0)

var obj = {
    "key": value
};

你的花括号在哪里?您只是尝试定义对象键而不将它们放在对象上,这就是您获得语法错误的原因。

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

答案 2 :(得分: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对象,请查看其他答案。