【发布时间】:2015-11-17 18:44:12
【问题描述】:
我正在尝试使用 jQuery 和 JSON 响应中返回的字符串数组中的选项值动态填充 <select> 元素。选项值之一是Joe&#39;s Cafe,解码后是Joe's Cafe。但是,当我使用以下代码时:
$.each(optionVals, function(idx, elem) {
$('#restaurant').append('<option value="' + elem + '">' + elem + '</option>');
});
相应的选项不是我所期望的。我看到了:
<option value="Joe's Cafe">Joe's Cafe</option>
而不是这个:
<option value="Joe's Cafe">Joe's Cafe</option>
如何防止jQuery在.append()操作中解码HTML实体&#39;?我检查了 JSON 响应,HTML 实体完好无损。我在加载选项后检查了源代码,并且 HTML 实体已被解码为单引号 '。
【问题讨论】:
-
您是使用旧的“查看源代码”(在许多浏览器中为 Ctrl+U)还是通过 DOM 窗格检查实际的 HTML?
-
@ÁlvaroGonzález 我使用 Chrome 的开发人员工具进行了检查。 Good ol' View Source 不会显示 HTML 源代码的动态部分。
-
那就是问题所在:您看不到实际的 HTML。不确定 Chrome,但如果您右键单击选择并选择“查看所选源”,Firefox 会显示实际 生成的 HTML。
-
在 Chrome、Firefox 和 Microsoft Edge 中检查...所有三个都将实际生成的 HTML 显示为单引号,而不是 HTML 实体
&#39;。
标签: javascript jquery json decode html-entities