编写字符串连接的正确方法

问题描述:

在JavaScript中连接字符串的正确方法是什么?例如,我有这个:编写字符串连接的正确方法

var addmore ='<tr>'+'<td style="text-align: center">'+currentIndex+'</td>'+'<td id="small"><input style="background: white; color: black;" type="text" id="number_'+currentIndex+'" value="">'+'</td><td><input style="background: white; color: black;" type="text" id="label_'+currentIndex'"></td></tr>' 

它在this fiddle显示一个错误,但我找不到它。我检查了引号,他们似乎是正确的。

引号太多会导致JavaScript中的混淆和错误?或者必须"超出'

+0

语法突出显示有时很有用。滚动浏览并查看事情的不同之处。 – alex 2013-05-10 07:41:04

+4

'id =“label _'+ currentIndex'”'缺少'+'。 – Ohgodwhy 2013-05-10 07:41:27

+0

哦,我的!谢谢! – yvonnezoe 2013-05-10 07:43:39

一个更好,更整洁WA y要这样做:

var addmore ='<tr>'+ 
      '<td style="text-align: center">'+currentIndex+'</td>'+       
      '<td id="small"><input style="background: white; color: black;" type="text" id="number_'+currentIndex+'" value=""></td>'+ 
      '<td><input style="background: white; color: black;" type="text" id="label_'+currentIndex+'"></td>'+ 
      '</tr>'; 

适当的这样的

var addmore ='<tr><td style="text-align: center">'+currentIndex+'</td><td id="small"><input style="background: white; color: black;" type="text" id="number_'+currentIndex+'" value=""></td><td><input style="background: white; color: black;" type="text" id="label_'+currentIndex+'"></td></tr>'; 
+0

为什么downvote .. ??任何理由 – Gautam3164 2013-05-10 07:42:55

+0

它不是我投票你。让我给你投票! ;) – yvonnezoe 2013-05-10 07:44:19

试试这个:

var addmore = '<tr><td style="text-align: center">' + currentIndex + '</td><td id="small"><input style="background: white; color: black;" type="text" id="number_' 
       + currentIndex + '" value="">' + '</td><td><input style="background: white; color: black;" type="text" id="label_' + currentIndex + '"></td></tr>'; 
+1

谢谢你,upvote! – yvonnezoe 2013-05-10 07:44:38

对于字符串concatination我倾向于在Python中使用字符串格式等。在该项目中使用的所有网页中common.js文件中的代码顶部定义字符串格式

试试这个(http://jsfiddle.net/9Xw8Q/1/

if (!String.prototype.format) { 
    String.prototype.format = function() { 
     var args = arguments; 
     return this.replace(/{(\d+)}/g, function(match, number) { 
      return typeof args[number] != 'undefined' 
       ? args[number] 
       : match 
       ; 
     }); 
    }; 
} 

,然后使用它像这样

currentIndex = 20 

var addmore ='<tr><td style="text-align: center">{0}</td><td id="small"><input style="background: white; color: black;" type="text" id="number_{0}" value=""></td><td><input style="background: white; color: black;" type="text" id="label_{0}"></td></tr>'.format(currentIndex) 
+1

谢谢您分享知识!这可以是我未来的参考。 +1 – yvonnezoe 2013-05-10 08:01:18

你可以在这里看到的输出:http://jsbin.com/abiduw/1/edit

currentIndex=5; 
var addMore = '<tr><td style="text-align: center">'+currentIndex+'</td><td id="small"><input style="background: white; color: black;" type="text" id="number_'+currentIndex+'" value=""></td><td><input style="background: white; color: black;" type="text" id="label_'+currentIndex+'"></td></tr>'; 
+0

感谢您介绍jsbin! +1 – yvonnezoe 2013-05-10 08:08:59