输入值形成用双引号和单引号

时间:2018-04-11 23:17:12

标签: javascript

我在输入“值”中遇到问题。

$("#printCard").append("<input type='hidden' name='textCard' value='that aren't on the battlefield have flash. ' id='texting'>");

或JSON:

$("#demo").append("<input type='hidden' name='textCard' value='"+ infoCard.text +"' id='texting'>" );

结果:

<input name="textCard" value="that aren" t="" on="" the="" battlefield="" have="" flash.="" '="" id="texting" type="hidden">

问题是双引号和单引号(不是.. )。

这个例子:

The two options I have to save, double quotation marks and single quotes.

谢谢大家

2 个答案:

答案 0 :(得分:2)

我建议使用基于对象的方法,然后您不必担心HTML中的特殊字符。

$("#printCard").append($("<input>", {
    type: "hidden",
    name: "textCard",
    value: infoCard.text,
    id: "texting"
});

答案 1 :(得分:1)

如果您不需要支持IE,请使用 template literals TL 是具有更简单语法和额外属性的字符串。这是 TL SL 之间的比较( S tring L iteral):

语法

SL:用双引号或单引号括起字符串。如果字符串的内容也有引号,则它们应该通过带有反斜杠的前缀来转义:

\" and \'

或使用 HTML entities

  • &lsquo;&#145; L eft S ingle QUO 标记)

  • &rsquo;&#146; R ight S ingle QUO 标记)功能

  • &ldquo;&#147; L eft D ouble QUO 标记)

  • &rdquo;&#148; R ight D ouble QUO 标记)

注意: HTML实体代表的这些特定引号是曲线或智能引号类型,只能用于纯文本而非代码。代码中使用的引号是直的,不要将它们混淆为普遍接受,它们与逗号是一段时间不同。

It's ok to use &rsquo; as an apostrophe - Unicode9.0.0, ch06, pg. 276

TL:在反引号中包裹字符串,也称为重音符号。在QWERTY键盘上,键位于左上角`

`template literal`

连接与插值

SL:乱七八糟的单引号,双引号和加号:

var str = '<input id="'+ID+'" class="form-control">';

TL:${...}中包装变量 和表达式

var str = `<input id="${ID}" class="form-control">`;

演示

&#13;
&#13;
var infoCard = {
  text: "that aren&rsquo;t on the battlefield have flash."
};

$("#printCard0").append(`<input type='hidden' name='textCard' value='that aren&rsquo;t on the battlefield have flash.' id='texting0'>`);


$("#printCard1").append(`<input type='hidden' name='textCard' value='${infoCard.text}' id='texting1'>`);
&#13;
<main id='core'>

  <figure id='printCard0'></figure>

  <figure id='printCard1'></figure>

</main>





<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;
&#13;
&#13;