1

我正在尝试通过 href 链接的数据变量传递一个数组:

<a href="#" class="edit" data-myvar="<?php echo json_encode($row); ?>">Test</a>

我正在使用 Jquery 来处理变量:

$(function(){

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

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

      console.log(res);

});


});

控制台日志说: Uncaught SyntaxError: Unexpected end of input

有任何想法吗?

谢谢。

4

2 回答 2

1

你永远不会声明一个变量:

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

应该:

var res = jQuery.parseJSON($(this).data("myvar"));
于 2013-09-16T15:46:49.810 回答
1

首先,htmlentities()在您的json_encode()调用中应用以确保所有引号在 HTML 中都可以。

data-如果 jQuery 包含有效的 JSON 语法,那么jQuery 已经为您对属性进行了 JSON 解析。因此,执行以下操作是正确的方法:

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

来自jQuery 文档

每次尝试都将字符串转换为 JavaScript 值(这包括布尔值、数字、对象、数组和 null)。只有在不改变值的表示形式的情况下,才会将值转换为数字。例如,“1E02”和“100.000”等价于数字(数值 100),但转换它们会改变它们的表示,因此它们保留为字符串。字符串值“100”被转换为数字 100。

当数据属性是对象(以'{'开头)或数组(以'['开头)时,则使用jQuery.parseJSON来解析字符串;它必须遵循有效的 JSON 语法,包括引用的属性名称。如果该值不可解析为 JavaScript 值,则将其保留为字符串。

工作小提琴

于 2013-09-16T15:50:54.930 回答