2012-05-16 86 views
4

获取奇怪jQuery的错误消息

Syntax error, unrecognized expression: [object Object] @ jquery.js:4267 

这里是一段代码从JQ

Sizzle.error = function(msg) { 
throw new Error("Syntax error, unrecognized expression: " + msg); // Line 4267 
}; 

详细

我已经预先声明的数组aoData。这个由Datatables创建的数组,我没有控制数组结构。

当我手动推PARAMS一个接一个这样的:

aoData.push({ "name": "process", "value": "fetch" });

它工作得很好,没有任何错误信息。

但问题是,当我尝试在脚本的顶部声明数组tableXtraPostParams和一个推一个数组的PARAMS到aoData,它仍然能正常工作,但我的代码,但是从jQuery的得到奇怪的错误信息不。

Syntax error, unrecognized expression: [object Object] @ jquery.js:4267 

下面是一段代码:(当我删除$.each环路它错误信息消失)

var tableXtraPostParams = { 
    "process":"fetch", 
    "which":"mine" 
}; 
$.each(tableXtraPostParams, function(n, v){ 
    aoData.push({ 
     "name": n, 
     "value": v 
    }); 
}); 

这里,看起来什么aoData像推前

[Object { name="sEcho", value=1}, Object { name="iColumns", value=8}, Object { name="sColumns", value=""}, Object { name="iDisplayStart", value=0}, Object { name="iDisplayLength", value=25}, Object { name="mDataProp_0", value=0}, Object { name="mDataProp_1", value=1}, Object { name="mDataProp_2", value=2}, Object { name="mDataProp_3", value=3}, Object { name="mDataProp_4", value=4}, Object { name="mDataProp_5", value=5}, Object { name="mDataProp_6", value=6}, Object { name="mDataProp_7", value=7}, Object { name="sSearch", value=""}, Object { name="bRegex", value=false}, Object { name="sSearch_0", value=""}, Object { name="bRegex_0", value=false}, Object { name="bSearchable_0", value=true}, Object { name="sSearch_1", value=""}, Object { name="bRegex_1", value=false}, Object { name="bSearchable_1", value=true}, Object { name="sSearch_2", value=""}, Object { name="bRegex_2", value=false}, Object { name="bSearchable_2", value=true}, Object { name="sSearch_3", value=""}, Object { name="bRegex_3", value=false}, Object { name="bSearchable_3", value=true}, Object { name="sSearch_4", value=""}, Object { name="bRegex_4", value=false}, Object { name="bSearchable_4", value=true}, Object { name="sSearch_5", value=""}, Object { name="bRegex_5", value=false}, Object { name="bSearchable_5", value=true}, Object { name="sSearch_6", value=""}, Object { name="bRegex_6", value=false}, Object { name="bSearchable_6", value=true}, Object { name="sSearch_7", value=""}, Object { name="bRegex_7", value=false}, Object { name="bSearchable_7", value=true}, Object { name="iSortingCols", value=1}, Object { name="iSortCol_0", value=0}, Object { name="sSortDir_0", value="asc"}, Object { name="bSortable_0", value=true}, Object { name="bSortable_1", value=true}, Object { name="bSortable_2", value=true}, Object { name="bSortable_3", value=true}, Object { name="bSortable_4", value=true}, Object { name="bSortable_5", value=true}, Object { name="bSortable_6", value=true}, Object { name="bSortable_7", value=true}] 

这里是推后

[Object { name="sEcho", value=1}, Object { name="iColumns", value=8}, Object { name="sColumns", value=""}, Object { name="iDisplayStart", value=0}, Object { name="iDisplayLength", value=25}, Object { name="mDataProp_0", value=0}, Object { name="mDataProp_1", value=1}, Object { name="mDataProp_2", value=2}, Object { name="mDataProp_3", value=3}, Object { name="mDataProp_4", value=4}, Object { name="mDataProp_5", value=5}, Object { name="mDataProp_6", value=6}, Object { name="mDataProp_7", value=7}, Object { name="sSearch", value=""}, Object { name="bRegex", value=false}, Object { name="sSearch_0", value=""}, Object { name="bRegex_0", value=false}, Object { name="bSearchable_0", value=true}, Object { name="sSearch_1", value=""}, Object { name="bRegex_1", value=false}, Object { name="bSearchable_1", value=true}, Object { name="sSearch_2", value=""}, Object { name="bRegex_2", value=false}, Object { name="bSearchable_2", value=true}, Object { name="sSearch_3", value=""}, Object { name="bRegex_3", value=false}, Object { name="bSearchable_3", value=true}, Object { name="sSearch_4", value=""}, Object { name="bRegex_4", value=false}, Object { name="bSearchable_4", value=true}, Object { name="sSearch_5", value=""}, Object { name="bRegex_5", value=false}, Object { name="bSearchable_5", value=true}, Object { name="sSearch_6", value=""}, Object { name="bRegex_6", value=false}, Object { name="bSearchable_6", value=true}, Object { name="sSearch_7", value=""}, Object { name="bRegex_7", value=false}, Object { name="bSearchable_7", value=true}, Object { name="iSortingCols", value=1}, Object { name="iSortCol_0", value=0}, Object { name="sSortDir_0", value="asc"}, Object { name="bSortable_0", value=true}, Object { name="bSortable_1", value=true}, Object { name="bSortable_2", value=true}, Object { name="bSortable_3", value=true}, Object { name="bSortable_4", value=true}, Object { name="bSortable_5", value=true}, Object { name="bSortable_6", value=true}, Object { name="bSortable_7", value=true}, Object { name="process", value="fetch"}, Object { name="which", value="all"}] 

我试图解决的问题

  1. 我下载了jQ 1.7.2(开发版),并将其缩小为1.7.2。没有成功!
  2. 我试着写

for(var p in tableXtraPostParams) { 
    aoData.push({ 
     "name": p, 
     "value": tableXtraPostParams[p] 
    }); 
} 

而不是$ .each。没有成功!

我在这里错过了什么?我真的不知道,为什么这个错误消息出现在Firefox日志中,当我尝试从$ .each内部推送并且代码仍然完美工作时。

任何建议将不胜感激!

这里是一个接一个的版本(无$。每次):datatables.net/examples/server_side/custom_vars.html

+0

我做了一个简单的JSFiddle,http://jsfiddle.net/brantolsen/GkWzN/,使用你的代码,一切似乎工作。你能否请尝试在JSFiddle中复制错误?请注意,我尝试了Chrome和Firefox。 –

+0

@BrantOlsen问题是aodata已经被声明,我无法控制它的结构。担心,但我无法控制它的结构。这是一个工作示例。 http://datatables.net/release-datatables/examples/server_side/pipeline.html我想推入其他参数到这个基于这个数组http://datatables.net/examples/server_side/custom_vars.html – heron

+0

为什么你是否在发布在解析_标题下的代码中使用jQuery时出现jQuery错误?你确定你正在寻找合适的地方吗?你可以发布堆栈跟踪吗? –

回答

1

我希望你找错了地方的错误。如果您正在迭代并增强的对象和数组不是jQuery实例,并且您可以在不使用$ .each的情况下重现它,我认为您应该看看稍后您如何使用aoData进行操作。

嘶嘶声的选择器引擎,所以找了,你做这样的事情的地方:

$(aoData[0]) 

在这个假设的情况下,你这是jQuery的认为它有一个选择,但你已经交了的东西其他。

希望有帮助!

+0

Thx中试图提供帮助。请参阅我的评论 – heron