美文网首页
JS中字符串拼装含有Json对象为参数的函数

JS中字符串拼装含有Json对象为参数的函数

作者: 唐T唐X | 来源:发表于2017-09-03 15:24 被阅读120次

最近在写js的时候遇到了一个低级问题,但是解决它废了一些周折,现在记录下来以后当乐呵看看。

<%@ page language="java" pageEncoding="UTF-8"%>
<!DOCTYPE HTML>
<html>
<head>
<title>测试页面</title>
<link href="bootstrap/css/bootstrap.min.css" rel="stylesheet">
<script type="text/javascript" src="js/jquery-1.9.1.min.js"></script>
<script type="text/javascript" src="bootstrap/js/bootstrap.min.js"></script>
</head>

<script type="text/javascript">
    function test() {
        var jsonObj = {"a1":"b1"};
        itemContent = "<button type=button onClick='show(" + jsonObj + ")'>测试</button>"
        //alert(itemContent)
        $(".start").after(itemContent);
    }
    
    function show(json) {
        for(var key in json){
            alert(key + " " + json[key])
        }
    }
</script>

<body onload="test()">
    <hr class="start"/>
</body>
</html>

非常简单的一个逻辑,就是动态拼装一个button,点击后会触发一个传入json对象的函数。但是点击后浏览器总是报一个错误:

SyntaxError: missing ] after element list

查看了一下对应的代码行,是这个:

 itemContent = "<button type=button onClick='show(" + jsonObj + ")'>测试</button>"

左看右看,没发现什么问题,而且看报错还感觉是格式问题,所以试了各种加转义等方法,都不管用... 最后,决定打印出来这个拼装的字符串才发现了端倪:

1.png

原来,拼装字符串的时候也把Json对象变为了字符串合并了,并不是把json内容合并。既然问题找到了,那就用json字符串好了,改为:

itemContent = "<button type=button onClick='show(" + JSON.stringify(jsonObj) + ")'>测试</button>"
1.png

测试成功!

相关文章

  • JS中字符串拼装含有Json对象为参数的函数

    最近在写js的时候遇到了一个低级问题,但是解决它废了一些周折,现在记录下来以后当乐呵看看。 非常简单的一个逻辑,就...

  • json对象与字符串、数组之间的转换

    json对象与字符串、数组之间的转换 JS中: json格式字符串转json对象(strJSON代表json字符串...

  • JS注意事项

    JS/JSON js对象转换字符串:JSON.stringify(要转换的对象)json字符串转换成js对象:JS...

  • JS 中 JSON 处理

    1、JS中生成JSON对象 2、JS中将JSON对象解析为字符串的方法:var jsonStr = JSON.st...

  • json字符串和json对象转化

    json字符串 json对象 在获得json数据时,先使用 alert(typeof(str)); 函数显示 js...

  • CK5自定义Span使用说明

    说明:span属性参数为js对象,其中class 为字符串数组,style 为js对象。execute方法参数: ...

  • js/json

    js对象转换字符串:JSON.stringify(要转换的对象)json字符串转换成js对象:JSON.parse...

  • js/json

    js对象转换字符串:JSON.stringify(要转换的对象) json字符串转换成js对象:JSON.pars...

  • js以及json

    js对象转换字符串:JSON.stringify(要转换的对象)json字符串转换成js对象:JSON.parse...

  • js/json

    js对象转换字符串:JSON.stringify(要转换的对象)json字符串转换成js对象:JSON.parse...

网友评论

      本文标题:JS中字符串拼装含有Json对象为参数的函数

      本文链接:https://www.haomeiwen.com/subject/dicjjxtx.html