爲什麼我不能把動態文本放在一個名爲foo的div上?以下是關於asp.net代碼隱藏的一種方法。可以使用jquery設置div的內容
StringBuilder script = new StringBuilder();
script.Append("<script type='text/javascript'>");
script.Append(" $(document).ready(function() {");
script.Append(" $('<div id=foo></div>').appendTo('body');");
script.Append(" var dlg = $('#foo');");
script.Append(" dlg.dialog({");
script.Append(" autoOpen: true,");
script.Append(" resizable: false,");
script.Append(" draggable: false,");
script.Append(" modal: true,");
script.Append(" title: 'Información',");
script.Append(" width: 400,");
script.Append(" height: 200,");
script.Append(" buttons: {");
script.Append(" 'Cerrar': function() {");
script.Append(" $(this).dialog('close');");
script.Append(" }");
script.Append(" }");
script.Append(" });");
script.Append(" $('#foo').html(<p>"+info+"</p>);");
script.Append(" });");
script.Append("</script>");
ClientScript.RegisterStartupScript(this.GetType(), "launchModalWindow", script.ToString());
的問題是在這條線:
script.Append(" $('#foo').html(<p>"+info+"</p>);");
沒有立即* *看到的問題。但請注意,不是'$('
').appendTo('body');'後面跟着'var dlg = $('#foo');',您可以簡單而直接地執行'var dlg = $('').appendTo('body');' – 2012-07-09 12:47:33當該行被執行並且div'foo'尚不存在時,文檔可能沒有完全準備好?其實是的,這是答案。我沒有看到你正在'document.ready'上創建'foo',這將在這行執行之前。 – 2012-07-09 12:48:33
請注意,'script'標記的'language'屬性已被棄用了十多年。相關屬性是['type'](http://www.w3.org/TR/html5/the-script-element.html#attr-script-type),但如果腳本是JavaScript,則不需要需要指定它,如果省略'type',則缺省值爲'「text/javascript」'。 – 2012-07-09 12:49:36