我有一个哈希数组,每个哈希都包含基于字符串的键/值对。奇怪的是,虽然我注意到当循环完成并且字符串中有撇号时,省略了撇号之后的任何字符(包括撇号)。例如,如果我有一个名称值Randy's Donuts
,它将仅在输入中显示为Randy
。有没有办法可以在循环中动态地逃避这些撇号(更不用说我不知道的任何其他特殊字符了)?
$(function() {
var brands = [{name: "Randy's Donuts"}, {name: "Joe's American Bar & Grill"}, {name: "Macy's"}];
for (var i = 0; i < brands.length; i++) {
var brandName = "<td><input type='text' value='" + brands[i]["name"] + "'></td>";
var $tr = "<tr>" + brandName + "</tr>";
$("table").append($tr);
}
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form action="">
<table></table><br />
<input type="submit" />
</form>
&#13;
答案 0 :(得分:1)
问题是因为您需要转义附加到字符串的品牌中的'
,或者将字符串分隔符更改为'
并使用"
来分隔属性值。后者更为直截了当。试试这个:
$(function() {
var brands = [{ name: "Randy's Donuts" }, { name: "Joe's American Bar & Grill" }, { name: "Macy's" }];
for (var i = 0; i < brands.length; i++) {
var brandName = '<td><input type="text" value="' + brands[i]["name"] + '"></td>';
var $tr = "<tr>" + brandName + "</tr>";
$("table").append($tr);
}
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form action="">
<table></table>
<br />
<input type="submit" />
</form>
&#13;