我在输入“值”中遇到问题。
$("#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.
谢谢大家
答案 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 :
‘
或‘
( L eft S ingle QUO 标记)
’
或’
( R ight S ingle QUO 标记)功能
“
或“
( L eft D ouble QUO 标记)
”
或”
( R ight D ouble QUO 标记)
注意: HTML实体代表的这些特定引号是曲线或智能引号类型,只能用于纯文本而非代码。代码中使用的引号是直的,不要将它们混淆为普遍接受,它们与逗号是一段时间不同。
It's ok to use ’
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">`;
var infoCard = {
text: "that aren’t on the battlefield have flash."
};
$("#printCard0").append(`<input type='hidden' name='textCard' value='that aren’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;