一尘不染

如何在HTML属性值中转义引号?

javascript

我通过创建html字符串来建立一行以使用jQuery插入表中,即

var row = "";
row += "<tr>";
row += "<td>Name</td>";
row += "<td><input value='"+data.name+"'/></td>";
row += "</tr>";

data.name是从ajax调用返回的字符串,可以包含任何字符。如果包含单引号,'它将通过定义属性值的结尾来破坏HTML。

如何确保在浏览器中正确显示字符串?


阅读 330

收藏
2020-05-01

共1个答案

一尘不染

您只需要用'等效的HTML实体字符代码交换任何字符:

data.name.replace(/'/g, "&#39;");

另外,您可以使用jQuery的DOM操作方法创建整个内容:

var row = $("<tr>").append("<td>Name</td><td></td>");
$("<input>", { value: data.name }).appendTo(row.children("td:eq(1)"));
2020-05-01