Javascript 为什么jQuery append()会删除字符串中第一个空格后的单词
我试图在ajax请求后动态生成表单。以下是相关的代码示例:Javascript 为什么jQuery append()会删除字符串中第一个空格后的单词,javascript,jquery,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='
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 + '>');
}
for(响应中的变量i.responseJSON[0]。字段){
var field=response.responseJSON[0]。字段[i];
$(“#属性_形式”)。附加(“”+i+“”)+
'');
}
我的问题是,当var i
和var field
是带有空格的字符串,如“Hello world”
,我的标签和输入将类似于
和
。但是,标签文本将正确显示,即Hello world
我不知道那是什么巫术,但我非常感谢你的帮助。提前感谢。使用“
将属性括起来
$('#properties_form')
.append('<label for="' + i + '">' + i + '</label>' +
'<input id="' + i + '" value="' + field + '">');
有一种更可靠的方法可以做到这一点
for (var i in response.responseJSON[0].fields) {
var field = response.responseJSON[0].fields[i];
$('#properties_form')
.append($('<label>').attr('for', i).text(i))
.append($('<input>').attr('id', i).val(field));
}
for(响应中的变量i.responseJSON[0]。字段){
var field=response.responseJSON[0]。字段[i];
$(“#属性#形式”)
.append($('').attr('for',i).text(i))
.append($('').attr('id',i).val(字段));
}
你不必担心字符串的内容,因为jQuery和DOM会为你处理它。更不用说这更容易阅读了。
你应该考虑使用<代码> Att/<代码>和<代码>文本<代码>,而不是String CONTAT。因为没有引号,HTML属性不能有空格。你的代码工作得很好,只是你没有WR。这是你想要的代码:)确实是这样,谢谢!为什么使用双引号解决了这个问题?@MehdiB你必须将属性包含在字符串中。这是因为字符串中有一个空格,HTML属性是空格分隔的。因此浏览器将其视为Hello World
,渲染为Hello World
@AnttiHaap最简单的解决方法是丹尼尔现在发布的答案。所以,我不会像那样更新答案。甚至比以前的答案更好。