鍍金池/ 問答/HTML/ 從json返回一個這樣的字串,如何把它拼接到onclick里?

從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的顯示邏輯部分正常,但刪除按鈕那里不正確,也沒法傳正確數(shù)據(jù)到后臺,用firefox內(nèi)視是這樣的內(nèi)容

引用文字

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

回答
編輯回答
落殤

'可以去掉,最外面的引號統(tǒng)一用單引號試試

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

<!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>
2018年9月11日 02:01