首页 > 解决方案 > jQuery .html() 自动将 ' 更改为 "

问题描述

我的 HTML 如下所示(示例)

"<i class='la la-angle-double-right'></i>"

假设我使用 ajax 加载 HTML 内容并将其推送到 div(ajaxify 概念)。

但是当我称之为$(element).html();返回时

"<i class="la la-angle-double-right"></i>"

然后让 js 面临问题Unexpected identifier at HTMLDivElement... ,如果我调用$(element).text();它会返回'' // empty string

问题是在我的情况下如何通过 jQuery 获取原始 HTML?

注意:我的完整内容是一个完整的内容<script>...</script>

标签: jquery

解决方案


两者<i class="la la-angle-double-right"></i><i class="la la-angle-double-right"></i>都是同一事物的有效表示。

如果您获取 html 并将其转换为 DOM,则原始 html 格式将丢失,浏览器将不会保留原始 html 文本,因此无法从 DOM Api 取回原始格式。

-$(element).html();或者更准确地说是浏览器的 DOM API - 将 DOM 元素转换回 html,并使用浏览器实现者选择的格式。所以它可能是<i class="la la-angle-double-right"></i>, <i class='la la-angle-double-right'></i>, <I class="la la-angle-double-right"></I>, <I CLASS="la la-angle-double-right"></I>, ...

您不应该期望(甚至中继)某种格式。

你的问题是当你使用它时你没有正确地转义数据。你必须写:

{
  "firstName": "<i class=\"la la-angle-double-right\"></i>"
  /* ... */
}

推荐阅读