Jquery 在url数据变量中传递数组

Jquery 在url数据变量中传递数组,jquery,arrays,url,Jquery,Arrays,Url,我试图通过href链接的数据变量传递数组: <a href="#" class="edit" data-myvar="<?php echo json_encode($row); ?>">Test</a> 控制台日志显示:未捕获的语法错误:输入意外结束 有什么想法吗 谢谢。您从未声明过变量: $(function(){ $('.edit').click(function(){ var res=jQuery.parseJSON(

我试图通过href链接的数据变量传递数组:

<a href="#" class="edit" data-myvar="<?php echo json_encode($row); ?>">Test</a>
控制台日志显示:未捕获的语法错误:输入意外结束

有什么想法吗


谢谢。

您从未声明过变量:

$(function(){

     $('.edit').click(function(){

          var res=jQuery.parseJSON($(this).data("myvar"));

      console.log(res);

});


});
var jQuery.parseJSON(res=$(this).data("myvar"));
                     ^ Not how to declare a variable
应该是:

var res = jQuery.parseJSON($(this).data("myvar"));
首先,在
json\u encode()
调用中应用,以确保HTML中的所有引号都是正确的

如果jQuery包含有效的JSON语法,它已经为您对
数据-
属性执行JSON解析。因此,采取以下措施是正确的做法:

// this will contain the JSON presentation of $row variable from PHP.    
var res = $(this).data("myvar");
从:

每次尝试都会将字符串转换为JavaScript值 (这包括布尔、数字、对象、数组和null)。价值 仅当这样做不会更改值的 代表性。例如,“1E02”和“100.000”等同于 数字(数值100),但转换它们会改变 表示,以便将它们保留为字符串。字符串值“100”为 转换成数字100

当数据属性是对象(以“{”)或数组开头时 (以“[”开头),然后使用jQuery.parseJSON解析字符串; 它必须遵循有效的JSON语法,包括带引号的属性名称。如果 该值不能作为JavaScript值进行分析,而是作为 绳子


我已经更正了我的代码,这是我在发布帖子时犯的错误,问题仍然存在于correction@AlanA--您的单击处理程序中的
edit
拼写错误。此外,错误发生在哪一行?抱歉,“edit”是一个拼写错误,我的原始代码拼写正确要获得该错误,您必须不传递任何内容g进入解析函数。执行console.log的
$(this.data(“myvar”)
并查看返回的内容:)显示实际呈现的HTML,而不是其中的php标记,我们可以提供帮助。问题在于数据myvar中的值。好的,我删除了HTML中使用的json编码。现在,当我尝试访问数组时:res[“user_id”]=未定义,res[0]=A,res[1]=r…等等..我很困惑您不删除
json\u encode()
,您删除了jQuery本身内部完成的
$.parseJSON
。我还增强了我的回答,以更好地澄清未来读者对此的看法。我已经尝试了您的建议,在html端使用json_encode,而不是使用$.parseJSON。现在我的输出是“未定义的”对于我上面提供的3个示例,请检查
$row
变量的内容。