2011-04-06 50 views
1

我正在開發一個Java Web應用程序,我使用了一些jQuery和一個REST Web服務,它們使用AJAX輸出一個包含Javascript對象列表的JSON對象。一切正常,但是當我嘗試使用填充jQuery.html()爲有效的div使用Javascript創建一個表,所有的地獄在Chrome中掙脫,包括本chrome中的jquery html()編碼錯誤

Error: INVALID_STATE_ERR: DOM Exception 11

在JavaScript控制檯

的問題是這樣的,試試這個在Chrome JavaScript控制檯:

$('#ValidadorWrapper').html("<div>AMOXICILIN 100 C&amp;psulapsula</div>"); 

但是,如果我們刪除符號,它的工作原理

$('#ValidadorWrapper').html("<div>AMOXICILIN 100 Camp;psulapsula</div>"); 

此問題只發生在Chrome,我懷疑它與編碼字符有關,但我無法找到任何方法。很明顯,我需要在本文檔中輸入& (i mean the &amp; entity)

我曾嘗試和沒有工作的一些步驟:

  1. 我使用gson library輸出字符串的JSP頁面。我的JSP頁面有這個標頭<%@page pageEncoding= "UTF-8" contentType="text/html; charset=UTF-8" %>。這是我的第一次嘗試,並且在我的JSON對象中出現&字符(以及任何特殊字符)時不起作用。

  2. 我的第二次嘗試是使用HTMLEntities Java庫來編碼所有特殊字符。這是實際的版本,它仍然無法正常工作

  3. 使用Unicode字符像\u0026不工作或者

還有更奇怪的。顯然,如果我使用$('#ValidadorWrapper').html("AMOXICILIN 100 \u0026");它可行!但這只是一個例子。我想,以填補一個HTML表,我的目標,所以我真的需要把這些數據裏的html(表)標籤

回答

3

試試這個:

$('<div></div>').appendTo('#ValidadorWrapper').text('AMOXICILIN 100 C&aacute;psulapsula'); 
+0

似乎工作。我需要這樣做,但標籤​​之間,插入一個之間插入內

,即時通訊將在這裏進行試驗,但如果你有一個答案,..我將EB gratefull – Jeeba 2011-04-06 22:31:37

+0

你打算如何標識特定'td'?是否,或者你的桌子有班級/ ID? – typeof 2011-04-06 22:34:09

+1

經過一番努力,我做到了!謝謝您的幫助。我只是用表頭和一個tbody創建表。然後我追加一個。然後對於td我使用:最後一個選擇器,如$('​​').appendTo('#tableId tr:last')。text(obj.somethigneconded); tr和td的插入是在for循環中進行的,所以我總是在創建的最後一個tr上插入我的td。如果我們只做一個大的插入,比如一個包含所有表的大字符串,這裏我就像插入時的行數的3倍,但對我來說不是很慢。再次感謝提示類型! – Jeeba 2011-04-06 22:55:28