2013-07-06 164 views
1

我有一個字符串,一些文本(名稱attr)應該替換爲動態文本。例如 options[team_member][0][name]將被替換爲options[team_member][1][name]字符串替換:多個替換在JQuery中不起作用

我做了遠:

var current = 1; 

    var block = jQuery('#contents').html(); 
    var replace_str = 'options[team_member]['+(current-1)+']'; 
    var replace_with = 'options[team_member]['+(current)+']'; 

    /* replace only first match */ 
    var rep_block = block.replace(replace_str,replace_with); 

    /* replace nothing */ 
    // var rep_block = block.replace(/replace_str/g,replace_with); 

    /* replace nothing */ 
    // var rep_block = block.replace(/(replace_str)/g,replace_with); 

    alert(rep_block); 

請查看完整的代碼在jsFiddle

我找不到我該如何解決這個問題的方法。請幫幫我。提前致謝。與 「G」 標誌

+1

對HTML字符串進行操作是錯誤的解決方案。 – ThiefMaster

+0

好的。我想添加一些帶有一些動態名稱的輸入的html塊。我怎樣才能做到這一點?你喜歡分享你的想法嗎? – itskawsar

回答

9

請更換

var rep_block = block.replace(replace_str,replace_with); 

var rep_block = block.split(replace_str).join(replace_with); 
+1

對不起,沒有出現鏈接回答,請點擊這裏: http://jsfiddle.net/2QFUw/1/ –

+1

謝謝它的工作;) – itskawsar

-1

使用全局替換:/ reg_ex_here/g或新的RegExp(EXP, 'G')

var string = 'bla bla bla'; 
string.replace(/bla/g, 'ok'); // -> ok ok ok 
string.replace(new RegExp('bla', 'g'), 'ok'); // -> ok ok ok 

在您的代碼:

var replace_str = 'options\\[team_member\\]\\['+(current-1)+'\\]'; 
rep_block = block.replace(new RegExp(replace_str, 'g'), replace_with); 
+0

請先檢查jsFiddle。 'var rep_block = block.replace(/ replace_str/g,replace_with);'//不需要替換 – itskawsar

+0

對不起,我更正了我的回答 –

+0

可否請您更新jsFiddle? – itskawsar