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

时间:2013-05-10 07:39:27

标签: javascript jquery

在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出现混淆和错误吗?或者"必须在'之外吗?

5 个答案:

答案 0 :(得分:4)

更好,更简洁的方法:

 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 :(得分:1)

对于字符串连接,我倾向于使用像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)

答案 2 :(得分:1)

您可以在此处查看输出: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>';

答案 3 :(得分:0)

正确地像这样

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>';

答案 4 :(得分:0)

试试这个:

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>';