如何在jquery的.html()中执行jquery / javascript代码

在jQuery.html()中,我想执行以下脚本.

$("#row1").html("<td id="cellId"><script>if (selectedStr) {var elem = $(\"#cellId\");       
$(elem).bind(\"onRefresh\", function() {loadColor(selectedStr); storeStr(selectedStr);});$(elem).trigger(\"onRefresh\");) }</script><td>")

需求:

我有一个testPage.jsp,其中包含带有单元格的表.选择特定单元格并单击“提交”按钮后,将打开一个弹出窗口.在弹出页面中,一些数据被更改并通过ajax处理.必须将生成的ajax响应动态设置为父行. ajax响应构建了要设置的整个内容.这是我失败的地方.
Ajax响应将是这样的.
< TD> …..< TD>
< TD> …..< TD>
< TD>内容<脚本> …< /脚本>< / TD>
< TD> …..< TD>
< TD>内容<脚本> …< /脚本>< / TD>

此外,“selectedStr”是testPage.jsp中的javascript全局变量.

问题:
1.“selectedStr未定义”是浏览器错误消息.我无法引用全局变量.
2.元素绑定没有发生.

我试图利用jQuery.getScript(),jQuery.globalEval,jQuery.eval.
我无法理解JQuery的{{html}}.

谢谢!

最佳答案 不是将所有内容都放入脚本中,而是在内存中构建元素,然后在添加到DOM之前将事件处理程序添加到内存中.

$td = $("<td></td>").attr("id", "cellId")
    .bind("onRefresh", function() {
        if (selectedStr) {
            loadColor(selectedStr);
            storeStr(selectedStr);
        }
    })
    .trigger("onRefresh");

$("#row1").html($td);

另外,要小心添加具有相同Id的多个td元素.

点赞