2011-04-29 92 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

相關問題