【问题标题】:Escaping html in Jquery在 Jquery 中转义 html
【发布时间】:2010-01-19 23:25:47
【问题描述】:

我这里有一个简单的 jquery sn-p:

$("#someid").html("Text Here");

我遇到的唯一问题是我将数据库数据放入html()

$("#someid").html("<?php echo $row['tablecolumn']; ?>");

效果很好!除了一件事。
当我在数据库中的文本中有“中断”时,它不会显示。

我确定我需要对字符进行某种转义。但我不知道安静那是什么。 有什么想法吗?

【问题讨论】:

  • 欢迎来到 SO。请澄清您的示例,PHP 代码使它有点混乱。那是在做什么,它是在运行时填充的吗?你能告诉我们你正在插入什么并且不起作用吗?你的意思是&lt;br&gt; 样式换行符`?您能否在浏览器的“查看源代码”模式下检查 HTML 代码,将其粘贴到您的问题中并向我们展示问题所在?
  • 如果您检查编辑,那不是 OP 的问题。回滚..
  • 不,Jason,PHP 代码在那里,但是 uncoded 这就是它在历史视图中不可见的原因。回滚你的回滚:)

标签: jquery escaping


【解决方案1】:

使用nl2br将HTML换行符添加到物理换行符并使用json_encode对数据进行编码:

$("#someid").html(<?php echo json_encode(nl2br($row['tablecolumn'])); ?>);

【讨论】:

    【解决方案2】:

    那么,您的文本没有按预期显示换行符?

    在发送数据之前,您可能需要在服务器端将换行符转换为
    标记。例如,如果您使用 PHP,则可以使用 nl2br 函数在文本中任何有 \n 的地方创建 HTML 换行符。

    【讨论】:

    • 我首先应用了 nl2br 函数,得到了相同的结果,没有返回任何内容。 Gumbo 对他的条目是正确的: $("#someid").html();效果很好!
    【解决方案3】:

    使用.text() 而不是.html()

    来自jQuery Attributes/text

    设置所有匹配的文本内容 元素。类似于 html(),但是 转义 HTML(将“”替换为 他们的 HTML 实体)。不能使用 在输入元素上。对于输入字段 text 使用 val 属性。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-06-06
      • 1970-01-01
      • 2011-07-15
      • 2013-12-04
      • 1970-01-01
      • 2011-08-26
      • 2011-12-08
      • 2014-03-12
      相关资源
      最近更新 更多