JQuery和Html忽略了引号

时间:2015-03-04 08:22:05

标签: javascript jquery html escaping

我正在使用JS和html进行编程,并且在向用户显示包含双引号的字符串时遇到问题。 我有字符串,可以由用户通过添加自由文本进行编辑。 我需要允许我的用法输入字符串,如= Hello“some text”bye。 之后由用户文本块编辑的文件正被保存到我的数据库中。 快速检查后,我发现字符串正确保存。 稍后我必须向用户显示这些文本块。 当我将此列表发回(到客户端)时,我的对象是正确的,也就是说,包含所有已编辑的字符串(例如 - 某些文本“其他文本”)。 后来我试图通过将每行推送到html来显示html文本:

htmlID.push('<input type=text value="'+MyString+'">')

但不幸的是我只获得了不在引号内的字符串部分,也就是说,由于引号,某些文本和“其他文本”被html跳过。(跳过引号内的所有文本和报价本身也是如此。)

我认为我要做的是遍历每个字符串,检查indexOf引号,如果是,请用其他值替换它们,如“”或“”“但遗憾的是我无法获得任何结果。

我会很高兴得到一些帮助, 谢谢

2 个答案:

答案 0 :(得分:1)

您需要将字符串中"的所有实例替换为其HTML实体:&quot;

&#13;
&#13;
var MyString = 'Hello "some text" bye'.replace(/"/g, '&quot;');
$('#container').append('<input type="text" value="' + MyString + '">');
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="container"></div>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

如果您创建如下所示的DOM元素,则引号不会出现任何问题。

var input = document.createElement('input');
input.setAttribute('type','text');
input.setAttribute('value',MyString);

htmlID.push(input.outerHTML);