jQuery的html函数用html特殊字符打破了价值?

时间:2017-06-18 13:17:00

标签: jquery

我有一个必须生成 动态 输入文字的div:

  var hh = "<input type='text' value='{0}' />";
//hh=hh.replace("{0}",list[2].w); from ajax
   hh=hh.replace("{0}","i don't know");

$("#div1").html(hh);

当我将文本设置为div时,输入值为:i don

('t know)已删除。

https://jsfiddle.net/fpqggc0f/4/

3 个答案:

答案 0 :(得分:2)

你在value属性中有相同的引用,就像它周围的引号一样。

您可以使用双引号并将其转义

$("#div1").html("<input type=\"text\" value=\"i don't know\" />");

或使用jQuery创建元素

var input = $('<input />', {
                type  : "text",
                value : "i don't know"
});

$('#div1').html(input);

答案 1 :(得分:0)

你应该这样写:

$("#div1").html("<input type='text' value='i don&#39;t know' />");

其中&#39;是用于显示'的HTML实体。

更多信息,您可以查看Character entity references in HTML

答案 2 :(得分:0)

这应该有效。只需添加一个反斜杠。

$("#div1").html("<input type='text' value='i don\'t know' />");