2013-10-02 50 views
0

我有一個購物車中的產品表。無論價格設置爲0美元,我都想將其更改爲TBC。 我用的代碼如下:

jQuery(document).ready(function() { 
     var replacedAmount = jQuery('body').html().replace('$0','TBC'); 
     jQuery('body').html(replacedAmount); 
    }); 

我想有,因爲需要一些正則表達式的事情,但$/$ /似乎並沒有做到這一點。

+0

它根本不是一個好主意來改變整個頁面的HTML,因爲在此之前附加的任何事件/數據將因此而丟失......但是其他解決方案將會非常昂貴,因爲您將不得不遍歷所有文本節點 –

+0

爲什麼不提供「你做這個serverside? – Blender

+0

爲什麼不選擇表格的單元而不是body元素的整個HTML內容? – undefined

回答

2

使用

var replacedAmount = jQuery('body').html().replace(/\$0/g,'TBC'); 

jQuery(document).ready(function() { 
    jQuery('body').html(function(_,old_html){ 
     return old_html.replace(/\$0/g, 'TBC'); 
    }); 
}); 

.html()

這並不改變機體的整個HTML是一個好主意。

相反,你可以代替那個特定的DIV/SPAN/P的等HTML,你知道$0出現

你也可以做,你說這是在表

jQuery(document).ready(function() { 
    jQuery('table').html(function(_,old_html){ 
     return old_html.replace(/\$0/g, 'TBC'); 
    }); 
}); 
1

您需要使用全局標誌:

var replacedAmount = jQuery('body').html().replace(/\$0/g,'TBC'); 

參見:
More info on JS regex

然而,這可能不是最好的辦法。如果您知道特定的元素,例如您提到了一個表格,請明確選擇這些元素並在那裏進行替換,而不是整個頁面的html。

相關問題