我试图动态地将一行JavaScript添加到div中,但是当我运行.append()调用时,浏览器看到该行中的function()调用是实际函数而不是实际函数字符串:
var startDate = 0
...
function insertCalendar(){
var divName = "div[name=StartDate" + startDateNum + "]";
$(divName).append("<script>Calendar.setup({ trigger : 'StartDate" + startDateNum + "', inputField : 'StartDate" + startDateNum + "', onSelect : function() { this.hide() } });</script>");
startDateNum++;
}
在调用.append()时,JavaScript控制台会返回“Uncaught SyntaxError:意外的输入结束”,而且似乎搞乱了insertCalendar函数。我很确定我没有错过引用...
请告诉我这是否过于含糊,因为这是我的第一个问题。谢谢!
答案 0 :(得分:1)
您可以创建脚本标记,然后添加javascript。
var jstag=document.createElement('script');
jstag.setAttribute("type","text/javascript");
jstag.appendChild(document.createTextNode(" Javascript code goes here "));
document.appendChild(jstag);
答案 1 :(得分:0)
得益于Anzz的答案,将其与一些AJAX混合:
var startDateNum = 0;
...
function setNewCal(){
var url = "getCal.php?startDate=" + startDateNum;
xmlHttp.open("GET", url, true);
xmlHttp.onreadystatechange = addCalendar;
xmlHttp.send(null);
}
function addCalendar(){
var divName = "StartDate" + startDateNum + "Div";
var response = xmlHttp.responseText;
if (xmlHttp.readyState == 4){
var calscript = document.createElement("script");
calscript.setAttribute("type", "text/javascript");
calscript.appendChild(document.createTextNode(response));
document.getElementById(divName).appendChild(calscript);
startDateNum++;
}
}