2011-04-29 98 views
1

我试过了一切,但我的代码不起作用。我不知道为什么。JavaScript:string.replace()不起作用,问题是什么?

这里是:

var table = $("#cpTableBody").html(); 
$("#cpTableBody").html(''); 

var tmpContent = ""; 
for (i=0; i<cpData.length; i++) { 
    var tmpTable = table; 
    tmpTable.replace(/{firstname}/g, cpData[i].contact_person.firstname); 
    tmpTable.replace(/{lastname}/g, cpData[i].contact_person.lastname); 
    tmpContent += tmpTable; 
} 

$("#cpTableBody").html(tmpContent); 
+0

'table'永远不会改变所以'VAR tmpTable =表; '循环中似乎没有意义的重新分配,这进一步意味着'{firstname}'和'{lastname}'将在第一次循环迭代中被替换,而所有其他迭代将不会执行任何操作。我错过了什么吗? – 2011-04-29 18:59:58

回答

6

简单的答案......你不设置tmpTable = tmpTable.replace ......像这样:

var tmpContent = ""; 
for (i=0; i<cpData.length; i++) { 
    var tmpTable = table; 
    tmpTable = tmpTable.replace(/firstname/g, cpData[i].contact_person.firstname + ""); 
    tmpTable = tmpTable.replace(/{lastname}/g, cpData[i].contact_person.lastname + ""); 
    tmpContent += tmpTable; 
} 
+1

+1这实际上是很常见的错误。 – 2011-04-29 18:54:09

+0

非常感谢:) 8小时的编码让我很头疼;) – silent 2011-04-29 18:56:09

+0

没问题。不要忘记通过点击这篇文章中的复选标记将其标记为答案:)当您在本网站上提出更多问题时,它也将对您有所帮助,因为您的“回答率”将为100%,并鼓励人们发帖。 – pixelbobby 2011-04-29 18:57:23

相关问题