【问题标题】:Jquery - Convert ascii chars back to HTMLJquery - 将 ascii 字符转换回 HTML
【发布时间】:2011-02-18 16:36:14
【问题描述】:

我正在从 html 文件中读取数据以加载到 div 中。我遇到的问题是,编写 html 文件的程序正在将 <br /> 转换为 <br />

所以当我执行时

$('#items').load('/News/list.aspx');

它在我的页面上将<br /> 显示为字符串,而不是将其作为分页符读取。

我曾尝试将上述文件读入一个变量以对<br /> 进行字符串替换,但它似乎不起作用。

有什么建议吗?

【问题讨论】:

  • 您尝试用什么替换标签? #it​​ems 只是一个 div 元素吗?
  • 我试图做一个 .replace('<br />','
    ') 是的 #items 只是一个 div 元素。它只是不能取代。它不会以任何方式影响它。

标签: jquery html ascii


【解决方案1】:

如果可能,第一步是修改服务器端脚本,这样 HTML 就不会被编码。

如果做不到这一点,您可以使用ajax 方法首先将页面数据加载到字符串中。您当前使用的方法只是立即加载文本。

$.ajax({
    type: 'GET',
    url: '/News/list.aspx',
    dataType: 'text',
    success: function(response) {
        response = response.replace( /&lt;/g, '<' );
        response = response.replace( /&gt;/g, '>' );
        $('#items').html(response);
    }
});

在这里,我替换了单个尖括号,这会将所有内容转换回 HTML。如果您只需要换行符而不需要其他任何内容,请将这两行替换为 response = response.replace( /&amp;lt;br \/&amp;gt;/g, '&lt;br /&gt;' );

【讨论】:

  • 创建文本文件的程序是一个黑匣子……而且一般来说是个麻烦事。您提出的 ajax 方法似乎只适用于它遇到的第一组 ...所以它删除了文本文件中的第一个但没有其他...疯狂
  • @sdmiller:你说得对,replace 在使用字符串时只替换一次。我已经编辑了答案以使用应该替换每次出现的正则表达式。
  • 是的.. 我花了几分钟,但我想通了!感谢您的输入..让我免于头疼的问题! ;)
【解决方案2】:

是对 标签进行 URL 编码吗?

您是否尝试过用这样的方式解码返回的字符串? :

http://plugins.jquery.com/project/URLEncode

HTH

编辑: 那不是 URL 编码,所以这不起作用。

【讨论】:

  • url 编码看起来像这样:%3Cbr%20%2F%3E
  • 是的,我同意,但在发布示例之前我已经回答过了。将更新我的分析器。
猜你喜欢
  • 2012-07-04
  • 1970-01-01
  • 2014-01-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-30
  • 2020-03-01
  • 1970-01-01
相关资源
最近更新 更多