'String chứa một nhân vật không hợp lệ' khi sử dụng document.createElement()

2013-08-23 21 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>"); 

Tôi nhận được một lỗi:'String chứa một nhân vật không hợp lệ' khi sử dụng document.createElement()

InvalidCharacterError: String contains an invalid character 

Làm thế nào tôi có thể sửa lỗi này?

Trả lời

10

Chuỗi bạn chuyển đến document.createElement là loại phần tử, ví dụ: tr.

Nếu bạn thực sự muốn để lắp ráp HTML của bạn như là một chuỗi lớn, tôi giả sử bạn có thể viết:

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>"; 

nhưng đây có thể sạch hơn/nhanh/an toàn hơn để sử dụng DOM thao tác cho toàn bộ điều.

+0

'NewRow' sẽ là' newRow' trên dòng đầu tiên. –

+0

@KevinBeal: Cuộc gọi tốt; xong, cảm ơn. – ruakh

0

Câu trả lời gần đây sẽ hoạt động tốt, Tôi có một câu trả lời tương tự .., tôi đã xác định các yếu tố để dễ dàng gỡ lỗi.

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

này hoạt động giống như sự quyến rũ đối với tôi .. vấn đề với mã trước đây là createElement .. nhưng điều này sẽ làm việc gì khác mà bạn phải tạo hàng, sau đó td sau đó văn bản và họ thêm ...

Tôi hy vọng điều này sẽ làm ..

+0

Bạn đang đề xuất (s) anh ta thay đổi 'style = 'color: Gray;'' to 'style = 'color: Gray''? Tin tôi đi, điều đó sẽ không tạo nên sự khác biệt; các ký hiệu đó tương đương 100%. – ruakh

+0

@ruakh Tôi đã cập nhật câu trả lời của mình, Vui lòng cho tôi biết nếu có điều gì cảm ơn bạn – MarmiK

Các vấn đề liên quan