将内联脚本添加到jQuery html()返回

时间:2015-12-30 21:50:21

标签: javascript jquery html

我正在使用for循环& jQuery输出到html()。输出JSON响应到html div。

在for循环中,我将每个结果转换为输出变量:

    $.ajax(settings).done(function(response) {
        var output = "";
        for (i in response.Products) {
            var productID = response.Products[i].ProductId;
            var OtherVariables = response.Products[i].OtherResponseFields;
            output += "<Some Other Code> <script type=\"application/javascript\"> ...some code unique to each productID... </script>";
        }
        $("#allResults").html(output);
    });

当输出变量中没有以下内容时,输出正常工作:

<script type=\"application/javascript\"> ...some code unique to each productID... </script>

但是当我根据顶级代码示例添加它时,它会中断。我正在考虑使用变量&#34; clicks_productID&#34;在添加产品和产品之前,用户可以在弹出窗口中选择产品数量。数量到我的数据库(尚未建成)。

有没有更好的方法(每个JSON返回结果需要不同 - 可以是基于提交的变量响应数量)?

1 个答案:

答案 0 :(得分:1)

变化

<script type=\"application/javascript\">var clicks_" + productID + " = 1;var minimum = 1;function updateClickCount_" + productID + "() {if (clicks >= minimum) {document.getElementById('clickCount_" + productID + "').innerHTML = clicks_" + productID + ";} else {clicks_" + productID + " = 1;document.getElementById('clickCount_" + productID + "').innerHTML = clicks_" + productID + ";}}</script>

<scr" + "ipt type=\"application/javascript\">var clicks_" + productID + " = 1;var minimum = 1;function updateClickCount_" + productID + "() {if (clicks >= minimum) {document.getElementById('clickCount_" + productID + "').innerHTML = clicks_" + productID + ";} else {clicks_" + productID + " = 1;document.getElementById('clickCount_" + productID + "').innerHTML = clicks_" + productID + ";}}</scr" + "ipt>

否则解释器会认为字符串中的结束脚本标记是脚本的结尾