带双引号问题的动态输入名称

时间:2015-07-23 00:28:10

标签: javascript jquery html escaping

场景:当<div>文字有双引号时。附加动态输入和警告输入值的JQuery方法不起作用。我知道在转义引号时会触发此问题。有人可以查看代码吗?

&#13;
&#13;
var divText = $("div").text();
$('form:not(:has([name="' + divText + '"]))').append($('<input>', {
  type: 'text',
  value: divText,
  name: divText
}));
alert($('[name="' + divText + '"]').val());
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>"</div>
<form>

</form>
&#13;
&#13;
&#13;

我在这里创建了一些demo

2 个答案:

答案 0 :(得分:0)

从jQuery文档中播放reg exp

&#13;
&#13;
var divText = $("div").text();
var name = divText.replace(/("|:|\.|\[|\]|,)/g, "\\$1");
$('form:not(:has([name="' + name + '"]))').append($('<input>', {
  type: 'text',
  value: divText,
  name: divText
}));
alert($('[name="' + divText + '"]').val());
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>"</div>
<form>

</form>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

如果必须使用双引号,则可以删除它们:

var divText = $("div").text().replace(/"/g, '');

Fiddle