javascript - 如何使用 jQuery 转义表单元素中的双引号和 html 标签?

标签 javascript jquery html

HTML:

Input: <span id="form"></span>

JavaScript:

var title = 'inside "<h1>outside?</h1>';
var inserted_data = '<input type="text" value=' + title + '>';
$("#form").html(inserted_data);

https://jsfiddle.net/uk7h8sw7/

结果很奇怪。 inside 位于表单字段内,而 outside 位于表单字段外部。而且标签几乎完全丢失。

如何转义双引号和 HTML 标记,以免出现这样的情况?

最佳答案

您错过了 value 属性的引号:

value=' + title + '

改用这个:

 value=\'' + title + '\'

var title = 'inside "<h1>outside?</h1>';
var inserted_data = '<input type="text" value=\'' + title + '\'/>';
$("#form").html(inserted_data);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
Input: <span id="form"></span>

更合适的解决方案是:

var titles = ['inside "<h1>outside?</h1>', 'inside\'>out'];

$.each(titles, function(_, title) {
  $('<input>').prop({
    'type': 'text',
    'value': title
  }).appendTo('#form');
});
input {
  margin: 5px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
Input: <span id="form"></span>

关于javascript - 如何使用 jQuery 转义表单元素中的双引号和 html 标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43433976/

相关文章:

jquery - 单击正文 html 时隐藏元素

html - 为什么这个背景属性被多次覆盖?

javascript - 如何从本地变量检索数据

asp.net - onfocus ="this.blur();"问题

javascript - 如何从不同域的 iframe 访问父 DOM?

javascript - 添加具有多维数组格式数据的行id/行数据

jquery - SimpleCart js - 在购物车中显示商品选项?

javascript - 事件在附加 View 中不起作用

javascript - 使用 javascript 访问 svg 中的当前位置

javascript - 翻译栏滚动修复