[英]How can I concatenate multiline string in javascript?
对于添加<li>
的正确语法,有很多结果,但是我正在尝试找到一种解决方案,其中+this['name']+
值包含在<li>
。 firebug显示'SyntaxError: unterminated string literal'
而jslint显示'Unclosed string'
。 我已经尝试了逗号位置的许多不同变体,但无法使其正常工作。
$.each(data.result, function() {
$("ul").append("<li>Name: "+this['name']+"</li>
<li>Age: "+this['age']+"</li>
<li>Company: "+this['company']+"</li>
<br />");
});
谢谢。
您可以使用反斜杠字符\\
来换行,如下所示:
$.each(data.result, function(){
$("ul").append("<li>Name: " + this['name'] + "</li> \
<li>Age: " + this['age'] + "</li> \
<li>Company: "+this['company']+"</li> \
<br />");
});
这是因为Javascript会在行尾的某个时间自动插入半列。 在这种情况下,您的字符串不是紧密的。 另一种解决方案是关闭每行上的每个字符串,并使用+
合并它们。
$.each(data.result, function(){
$("ul").append("<li>Name: " + this['name'] + "</li>" +
"<li>Age: " + this['age'] + "</li>" +
"<li>Company: "+this['company']+"</li>" +
"<br />");
});
(无关,但<ul>
元素内不允许您使用<br/>
)
这应该更快
li = '';
$.each(data.result, function(){
li += "<li>Name: " + this['name'] + "</li>" +
"<li>Age: " + this['age'] + "</li>" +
"<li>Company: "+this['company']+"</li>" +
"<br />"; // could remove this and use css
});
$("ul").append(li);
您实际上根本不想将其串联起来! 考虑一下包含HTML或类似HTML的数据的可变数据会发生什么。 使用您的方法,它将被如此解析,可能会破坏事物,甚至使您对XSS攻击方法开放。
您已经在使用jQuery,因此正确的方法很简单:
$('ul').append(
$('<li/>').text('Name: ' + this.name),
$('<li/>').text('Age: ' + this.age),
// etc.
);
(注意:我相信.append()
允许您提供尽可能多的参数 。如果不允许,请尝试在添加时使用元素数组。)
您应该使用模板文字,以获取更多信息
$.each(data.result, function() {
$("ul").append(`<li>Name: ${this['name']} </li>
<li>Age: ${this['age']} </li>
<li>Company: ${this['company']} </li>
<br />
`);
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.