javascript - 使用 javascript 添加 HTML 标签

标签 javascript jquery html

我在动态添加 html 标签时遇到问题。我正在创建一个输入标签作为

var valueString = $("#className").val();
var htmlString = "<input type='hidden' id='class' name='class' value='"+ valueString +"' />"

现在的问题是,当“valueString”包含撇号 (') 时,创建的输入值会从撇号中 chop 。如何将变量附加为单个字符串?

如果我用双引号 (") 更改撇号 ('),那么当变量包含双引号 (") 时就会出现问题。

最佳答案

不要通过将字符串混合在一起来构建 HTML,这是造成此类问题的主要原因。改用 DOM(或围绕它的 jQuery 包装器)。

var valueString = $('#className').val();
var $input = $("<input />", {
   type: "hidden",
   name: "class",
   value: valueString,
   id: "class"
});

然后您可以将其附加到文档中。如果您确实需要一串 HTML,那么您可以:

var htmlString = $("<div />").append($input).html();

var valueString = "Example\" input' with special < characters >";
var $input = $("<input />", {
  type: "hidden",
  name: "class",
  value: valueString,
  id: "class"
});
var htmlString = $("<div />").append($input).html();
alert(htmlString);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

关于javascript - 使用 javascript 添加 HTML 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31915886/

相关文章:

html - Jquery Mobile ListView 选定项 CSS 颜色

javascript - 获取数据属性onchange事件

javascript - 如何使输入字段标题显示输入字段中的文本?

javascript - 使用 Jasmine 和 Chutzpah 对 AngularJs Controller 进行单元测试

javascript - 使用 AJAX 序列化日期

javascript - 在 Ruby 中动态命名数组/哈希

javascript - 如何解析对象?

javascript - 通过 ajax 发送多个对象(使用 Angular )

javascript - Electron - 单击按钮执行程序

javascript - 单击时 jQuery 下拉列表不显示