【问题标题】:Jquery html() encoding error in chromechrome中的Jquery html()编码错误
【发布时间】:2011-04-06 22:04:04
【问题描述】:

我正在开发一个 Java Web 应用程序,我使用了一些 jQuery 和一个 REST Web 服务,它们使用 AJAX 输出一个带有 Javascript 对象列表的 JSON 对象。一切都很好,但是当我尝试使用 jQuery.html() 将使用 Javascript 创建的表格填充到有效的 div 时,Chrome 中的所有内容都崩溃了,包括这个

错误:INVALID_STATE_ERR:DOM 异常 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;amp; entity)

我尝试过的一些步骤没有奏效:

  1. 我正在使用gson library 将字符串输出到 JSP 页面。我的 JSP 页面有这个标题 &lt;%@page pageEncoding= "UTF-8" contentType="text/html; charset=UTF-8" %&gt; 。这是我的第一次尝试,当我的 JSON 对象(以及任何特殊字符)中出现 & 符号时,它不起作用。

  2. 我的第二次尝试是使用 HTMLEntities Java 库对所有特殊字符进行编码。这是实际版本,还是不行

  3. 使用像 \u0026 这样的 unicode 字符也不起作用

还有更奇怪的东西。显然,如果我使用$('#ValidadorWrapper').html("AMOXICILIN 100 \u0026"); 它可以工作!但这只是一个例子。我正在尝试用我的对象填充 HTML 表格,所以我真的需要将该数据放入 html(表格)标签中

【问题讨论】:

    标签: java jquery html google-chrome


    【解决方案1】:

    试试这个:

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

    【讨论】:

    • 似乎有效。我需要这样做,但在 标签之间,插入在 之间,插入
      之间,我要在这里进行实验,但如果你有答案, ..我会感激不尽
    • 您打算如何识别特定的td?是它,还是你的表有一个类/ID?
    • 经过一番努力,我做到了!谢谢您的帮助。我只是创建带有标题和 tbody 的表。然后我附加一个 。然后对于 td 我使用 :last 选择器,例如 $('').appendTo('#tableId tr:last').text(obj.somethigneconded); tr 和 td 的插入是在 for 循环中进行的,所以我总是在创建的最后一个 tr 上插入我的 td。我读到的某个地方如果我们只进行一次大插入会更好,比如包含所有表格的大字符串,这里我做的插入行数是插入行的 3 倍,但对我来说并不慢。再次感谢您的提示!
    • 介意投票吗? ;-)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多