为什么jQuery append()会在字符串

时间:2017-08-11 13:21:11

标签: javascript jquery

我试图在ajax请求后动态生成表单。以下是相关的代码示例:

for (var i in response.responseJSON[0].fields) {
  var field = response.responseJSON[0].fields[i];
  $('#properties_form').append('<label for=' + i + '>' + i + '</label>' +
                    '<input id=' + i + ' value=' + field + '>');
}

我的问题是,当var ivar field是包含"Hello world"空格的字符串时,我的标签和输入将类似于<label id="Hello" world=""><input value="Hello" world=""> 。但是,标签文字将正确显示,即<label>Hello world</label>

我不知道那是什么样的巫术,但我会非常感激任何帮助。提前谢谢。

1 个答案:

答案 0 :(得分:4)

使用const括起属性。

::Int64

修改

对于"的值类似$('#properties_form') .append('<label for="' + i + '">' + i + '</label>' + '<input id="' + i + '" value="' + field + '">'); 的情况,这会中断。最好的解决方案是添加为jQuery或JS对象,而不是像Daniel的回答一样使用HTML字符串。

以下代码段包含正确的解决方法。根据Daniel的回答更新。

&#13;
&#13;
i
&#13;
This "works"
&#13;
&#13;
&#13;