无法从Javascript数组和未捕获的SyntaxError获取值:jquery中出现意外标识符
首先,我是Javascript新手,我使用的数组在运行时获得它的值,就像无法从Javascript数组和未捕获的SyntaxError获取值:jquery中出现意外标识符,javascript,c#,jquery,arrays,Javascript,C#,Jquery,Arrays,首先,我是Javascript新手,我使用的数组在运行时获得它的值,就像 var tablehash = [CS: "CS", tbl_master: "tbl_master"] 我必须获取数组中的值,以便与我尝试过的值进行比较 var valtocompare = tablehash ["CS"]; 但是它给了我错误,所以我已经手动测试了上面的数组 var tablehash = {CS: "CS", tbl_master: "tbl_master"} 并获取了正确的值 我的问题是,为什
var tablehash = [CS: "CS", tbl_master: "tbl_master"]
我必须获取数组中的值,以便与我尝试过的值进行比较
var valtocompare = tablehash ["CS"];
但是它给了我错误,所以我已经手动测试了上面的数组
var tablehash = {CS: "CS", tbl_master: "tbl_master"}
并获取了正确的值
我的问题是,为什么我不能从具有[]
作为开始和结束符号的数组中获取值,但我可以从具有{}
作为开始和结束符号的数组中获取值
编辑:valuevar tablehash=[CS:“CS”,tbl_master:“tbl_master”]。
从tablehash[xx[0]]=xx[0]行获取代码>在运行时的jquery中,它包含在[]
中,只有我能做什么
请告诉我我做错了什么
未捕获的语法错误:jquery中出现意外标识符
因为我不能问新问题,所以我在这个线程中添加了新问题,因为下面提到的脚本在同一个Jquery库中
我正在从我的页面调用下面提到的jQuery
库函数,但在计算发送的JSON字符串时,我得到了未捕获的语法错误:意外标识符
函数从页面调用为
function BindSearchedQueryData(JsonString) {
$('.sqlbuild').loadSQB(JsonString);
}
负载SQB为
loadSQB: function (jsonstr) {
var $tt = this[0];
$('.sqlcolumn').remove();
$('.sqlwhere').remove();
$('.sqlgroup').remove();
$('.sqlsort').remove();
var j=eval('(' + jsonstr + ')'); //Getting Error in this line
var coldiv =$(".addnewsqlcolumn");
var sortdiv =$('.addnewsqlsort');
var groupdiv=$('.addnewsqlgroup');
var wherediv=$('.addnewsqlwhere');
/*rebuild col data*/
for(var i=0;i<j.columndata.length;i++){
//j.columndata[i].columnslot, j.columndata[i].columnvalue
coldiv[0].opts.onselect(j.columndata[i].columnslot,coldiv,{columnas:j.columndata[i].columnas});
}
/*rebuild sort data*/
for(var i=0;i<j.sortdata.length;i++){
//j.sortdata[i].columnslot, j.sortdata[i].columnas
sortdiv[0].opts.onselect(j.sortdata[i].columnslot,sortdiv,{columnas:j.sortdata[i].columnas});
}
/*rebuild group by data*/
for(var i=0;i<j.groupdata.length;i++){
//j.groupdata[i].columnslot,
groupdiv[0].opts.onselect(j.groupdata[i].columnslot,groupdiv,null);
}
/*rebuild where data*/
for(var i=0;i<j.wheredata.length;i++){
//j.wheredata[i].columnslot, j.wheredata[i].opslot,j.wheredata[i].chainslot,j.wheredata[i].columnvalue
wherediv[0].opts.onselect(j.wheredata[i].columnslot,wherediv,{columnslot:j.wheredata[i].columnslot,opslot:j.wheredata[i].opslot,chainslot:j.wheredata[i].chainslot,columnvalue:j.wheredata[i].columnvalue});
}
}
loadSQB:function(jsonstr){
var$tt=该[0];
$('.sqlcolumn').remove();
$('.sqlwhere').remove();
$('.sqlgroup').remove();
$('.sqlsort').remove();
var j=eval(“(“+jsonstr+”);//此行中出现错误
var coldiv=$(“.addnewsqlcolumn”);
var sortdiv=$('.addnewsqlsort');
var groupdiv=$('.addnewsqlgroup');
var wherediv=$('.addnewsqlwhere');
/*重建col数据*/
for(var i=0;iJavascript没有关联数组,即不能有关联数组
var tablehash=[CS:“CS”,tbl\u master:“tbl\u master”]
但是你可以
var tablehash={CS:“CS”,tbl_master:“tbl_master”}
,这是一个有效的对象
执行此操作后,可以使用object.key
语法访问值
因此,tablehash.CS
的值应该是CS
PS-在ide/编辑器中使用linter。Javascript没有关联数组,即不能有关联数组
var tablehash=[CS:“CS”,tbl\u master:“tbl\u master”]
但是你可以
var tablehash={CS:“CS”,tbl_master:“tbl_master”}
,这是一个有效的对象
执行此操作后,可以使用object.key
语法访问值
因此,tablehash.CS
的值应该是CS
PS-在ide/编辑器中使用过梁。Javascript中的[]
和{}
之间存在差异。
[]
中包含的值是数组中的值,{}
中的值使{}
成为javascript对象。
您可以像Javascript一样使用关联数组
{a:'苹果',b:'球'}
。
也可以将数组作为值
{a:[1,2],b:[3,4]}
。
所以你需要把你的散列格式设置为
var tablehash={CS:“CS”,tbl_master:“tbl_master”}
。
为了访问它,你像
tablehash['CS']或tablehash.CS
Javascript中的[]
和{}
之间存在差异。
[]
中包含的值是数组中的值,{}
中的值使{}
成为javascript对象。
您可以像Javascript一样使用关联数组
{a:'苹果',b:'球'}
。
也可以将数组作为值
{a:[1,2],b:[3,4]}
。
所以你需要把你的散列格式设置为
var tablehash={CS:“CS”,tbl_master:“tbl_master”}
。
为了访问它,你像
tablehash['CS']或tablehash.CS
回答我的第二个问题未捕获的语法错误:意外标识符
我传递给函数loadSQB的值是Javascript
对象,因此我使用JSON.stringify()
将Javascript
对象转换为JSON
字符串
loadSQB: function (jsonstr) {
jsonstr=JSON.stringify(jsonstr); //Solution for the Question
var $tt = this[0];
$('.sqlcolumn').remove();
$('.sqlwhere').remove();
$('.sqlgroup').remove();
$('.sqlsort').remove();
var j=eval('(' + jsonstr + ')'); //Got Error in this line
var coldiv =$(".addnewsqlcolumn");
var sortdiv =$('.addnewsqlsort');
var groupdiv=$('.addnewsqlgroup');
var wherediv=$('.addnewsqlwhere');
/*rebuild col data*/
for(var i=0;i<j.columndata.length;i++){
//j.columndata[i].columnslot, j.columndata[i].columnvalue
coldiv[0].opts.onselect(j.columndata[i].columnslot,coldiv,{columnas:j.columndata[i].columnas});
}
/*rebuild sort data*/
for(var i=0;i<j.sortdata.length;i++){
//j.sortdata[i].columnslot, j.sortdata[i].columnas
sortdiv[0].opts.onselect(j.sortdata[i].columnslot,sortdiv,{columnas:j.sortdata[i].columnas});
}
/*rebuild group by data*/
for(var i=0;i<j.groupdata.length;i++){
//j.groupdata[i].columnslot,
groupdiv[0].opts.onselect(j.groupdata[i].columnslot,groupdiv,null);
}
/*rebuild where data*/
for(var i=0;i<j.wheredata.length;i++){
//j.wheredata[i].columnslot, j.wheredata[i].opslot,j.wheredata[i].chainslot,j.wheredata[i].columnvalue
wherediv[0].opts.onselect(j.wheredata[i].columnslot,wherediv,{columnslot:j.wheredata[i].columnslot,opslot:j.wheredata[i].opslot,chainslot:j.wheredata[i].chainslot,columnvalue:j.wheredata[i].columnvalue});
}
}
loadSQB:function(jsonstr){
jsonstr=JSON.stringify(jsonstr);//问题的解决方案
var$tt=该[0];
$('.sqlcolumn').remove();
$('.sqlwhere').remove();
$('.sqlgroup').remove();
$('.sqlsort').remove();
var j=eval(“(“+jsonstr+”);//此行出错
var coldiv=$(“.addnewsqlcolumn”);
var sortdiv=$('.addnewsqlsort');
var groupdiv=$('.addnewsqlgroup');
var wherediv=$('.addnewsqlwhere');
/*重建col数据*/
对于(var i=0;i第二个问题的答案未捕获的语法错误:意外标识符
我传递给函数loadSQB的值是Javascript
对象,因此我使用JSON.stringify()
将Javascript
对象转换为JSON
字符串
loadSQB: function (jsonstr) {
jsonstr=JSON.stringify(jsonstr); //Solution for the Question
var $tt = this[0];
$('.sqlcolumn').remove();
$('.sqlwhere').remove();
$('.sqlgroup').remove();
$('.sqlsort').remove();
var j=eval('(' + jsonstr + ')'); //Got Error in this line
var coldiv =$(".addnewsqlcolumn");
var sortdiv =$('.addnewsqlsort');
var groupdiv=$('.addnewsqlgroup');
var wherediv=$('.addnewsqlwhere');
/*rebuild col data*/
for(var i=0;i<j.columndata.length;i++){
//j.columndata[i].columnslot, j.columndata[i].columnvalue
coldiv[0].opts.onselect(j.columndata[i].columnslot,coldiv,{columnas:j.columndata[i].columnas});
}
/*rebuild sort data*/
for(var i=0;i<j.sortdata.length;i++){
//j.sortdata[i].columnslot, j.sortdata[i].columnas
sortdiv[0].opts.onselect(j.sortdata[i].columnslot,sortdiv,{columnas:j.sortdata[i].columnas});
}
/*rebuild group by data*/
for(var i=0;i<j.groupdata.length;i++){
//j.groupdata[i].columnslot,
groupdiv[0].opts.onselect(j.groupdata[i].columnslot,groupdiv,null);
}
/*rebuild where data*/
for(var i=0;i<j.wheredata.length;i++){
//j.wheredata[i].columnslot, j.wheredata[i].opslot,j.wheredata[i].chainslot,j.wheredata[i].columnvalue
wherediv[0].opts.onselect(j.wheredata[i].columnslot,wherediv,{columnslot:j.wheredata[i].columnslot,opslot:j.wheredata[i].opslot,chainslot:j.wheredata[i].chainslot,columnvalue:j.wheredata[i].columnvalue});
}
}
loadSQB:function(jsonstr){
jsonstr=JSON.stringify(jsonstr);//问题的解决方案
var$tt=该[0];
$('.sqlcolumn').remove();
$('.sqlwhere').remove();
$('.sqlgroup').remove();
$('.sqlsort').remove();
var j=eval(“(“+jsonstr+”);//此行出错
var coldiv=$(“.addnewsqlcolumn”);
var sortdiv=$('.addnewsqlsort');
var groupdiv=$('.addnewsqlgroup');
var wherediv=$('.addnewsqlwhere');
/*重建col数据*/
对于(var i=0;它不是数组。如果您想要对象,请使用{CS:“CS”,tbl_master:“tbl_master”}
,如果您想要数组,请使用[“CS”,“tbl_master”]
[CS:“CS”,tbl_master:“tbl_master”]
只是无效语法。请使用来验证您的代码。这不是