从json返回一个这样的字串,如何把它拼接到onclick里?

字符串值为:xx,"><xx

function escapeHtml(string) {

    var entityMap = {
        "&": "&amp;",
        "<": "&lt;",
        ">": "&gt;",
        '"': '&quot;',
        "'": '&#39;',
        "/": '&#x2F;'
    };
    return String(string).replace(/[&<>"'\/]/g, function (s) {
        return entityMap[s];
    });
};
...
 var esctext = escapeHtml(v.desctext);
                        str += "<tr><td>" + esctext + "</td>";                            
                        str += '<td><button class="layui-btn layui-btn-danger" onclick="deleteitem(' + type + ',\'' + esctext + '\')">刪除</button>';
                        

用了escape后td的显示逻辑部分正常,但删除按钮那里不正确,也没法传正确数据到后台,用firefox内视是这样的内容

引用文字

=>onclick="deleteitem(0,'xx,"><xx')"

阅读 1.8k
1 个回答

'可以去掉,最外面的引号统一用单引号试试

那你可以参照以下小栗子:

<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<body>
    <div id="box"></div>

    <script type="text/javascript" src="jquery-3.2.1.min.js"></script>
    <script type="text/javascript">
        var a = 'one', b = 'two';
        function test(x, y) {
          return '<button onclick="show(\'' + x + '\',\'' + y + '\')">Click Me</button>';
        }
        function show(x, y) {
            console.log(x + '-' + y);
        }
        $('#box').append(test(a, b));
    </script>
</body>
</html>
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题