2013-08-23 152 views
6
var NewRow = document.createElement("<tr><td align='left' valign='top' width='9%;' ><img width='32px' height='32px' src='images/" + ProfilePic + "' /></td><td align='left' valign='Top' ><span class='MsgSpan'>" + Msg + "</span></td><td align='right' align='left' valign='top' style='color:Gray;' >" + Date + "</td></tr>"); 

我得到一個錯誤:'字符串包含無效字符'()

InvalidCharacterError: String contains an invalid character 

我該如何解決這個問題?

回答

10

你傳遞給document.createElement的字符串是元素的類型,例如tr

如果你真的想組裝您的HTML作爲一個大串,我想你可以寫:

var newRow = document.createElement('tr'); 
newRow.innerHTML = "<td align='left' valign='top' width='9%;' ><img width='32px' height='32px' src='images/" + ProfilePic + "' /></td><td align='left' valign='Top' ><span class='MsgSpan'>" + Msg + "</span></td><td align='right' align='left' valign='top' style='color:Gray;' >" + Date + "</td>"; 

但它可能是清潔/更快/更安全的使用DOM操作整個事情。

+0

'NewRow'應該是'newRow'在第一行。 –

+0

@KevinBeal:好的呼叫;完成了,謝謝。 – ruakh

0

最近的答案會很好, 我有一個類似的答案..我已經定義了這些元素,以便於調試。

var ProfilePic = "abl.jpg"; 
var Msg="Hi"; 
var Date = "June 10, 2010"; 
function doit() { 
    var NewRow ="<tr><td align='left' valign='top' width='9px' ><img width='32px' height='32px' src='images/" + ProfilePic + "' /></td><td align='left' valign='Top' ><span class='MsgSpan'>" + Msg + "</span></td><td align='right' align='left' valign='top' style='color:Gray;' >" + Date + "</td></tr>"; 
    var element = document.getElementById("tbl_body"); 
    element.innerHTML +=NewRow; 
} 

這就像魅力,我..與以前的代碼,問題的createElement ..但是這會工作否則你必須創建行,然後再TD文本,並將其追加...

我希望這會做..

+0

你是在暗示他改變了'style ='color:Gray;''to'style ='color:Gray''?相信我,那不會有所作爲;這些符號是100%相等的。 – ruakh

+0

@ruakh我已經更新了我的答案,請讓我知道如果有什麼謝謝 – MarmiK