2011-10-20 7 views
2

私はJavaScriptの行を動的にdivに追加しようとしていますが、.append()呼び出しを実行すると、ブラウザは実際の文字列ではなく実際の関数としてその行内でfunction() :「:、入力の予期しない終わり捕捉されないでSyntaxErrorを」、それが機能insertCalendarを台無しに思える(.appendの呼び出しでjQueryを使用して関数を含むスクリプトを挿入しますか?

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++; 
} 

)JavaScriptコンソールを返します。私はかなり断言していないと確信しています...

これはあまりにも漠然としていますが、これは私の最初の質問です。ありがとう!

+1

をなぜあなたはスクリプトタグを追加している代わりに、単純に関数を直接呼び出しますか? – dgilland

+0

私は、ページ上にある各カレンダーインスタンスに対して、複数の関数の反復を必要とします。 – Paulmichael

答えて

1

スクリプトタグを作成し、JavaScriptを追加することができます。

var jstag=document.createElement('script'); 
    jstag.setAttribute("type","text/javascript"); 
    jstag.appendChild(document.createTextNode(" Javascript code goes here ")); 
    document.appendChild(jstag); 
+0

ありがとう、これは一度私はもう少し微調整! – Paulmichael

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++; 
    } 
} 
関連する問題