2013-06-20 57 views
0

我寫這是用來替換該類在某些條件下的div的功能,例如,Jquery的取代數在固定位置

  1. 條件A - 在div類是e_new_hazard_frame_2_1_4_7,我想更換2比1,結果應該是這樣的 - e_new_hazard_frame_1_1_4_7
  2. 條件B - 在div類是與上述相同的,我想替換1至4中,結果應該是這樣的 - e_new_hazard_frame_2_4_4_7
  3. 條件C - 在div類是與上述相同的,我想更換4至6,結果應該是這樣的 - e_new_hazard_frame_2_1_6_7
  4. 條件d - 在div類是與上述相同的,我想更換7:3,結果應該是這樣的 - e_new_hazard_frame_2_1_4_3

這4個數字可能是一樣的,像1_1_1_1,我的演示編碼就像 無功海峽=「e_new_hazard_frame_2_1」; str = str.replace(/ _ [_ 0-9] *)$ /,'1');

它似乎不正確任何人都可以教我如何做到這一點?非常感謝!

回答

0

也許使用函數來處理數字,但是你想要嗎?

replace Javascript | MDN

function replacer(match, p1, p2, p3, p4, offset, string){ 
    // p1-4 are your numbers 
    // (they are strings right now, sto make +p1 to convert them to int) 
    p1= +p1 + 1; 
    p2= +p2 + 1; 
    p3= +p3 + 1; 
    p4= +p4 + 1; 

    // fixed a small bug here 
    return ['', p1, p2, p3, p4].join('_'); 
}; 

var str = "asdasdasd_1_2_3_4"; 
str = str.replace(/_(\d)_(\d)_(\d)_(\d)/, replacer); 
+0

只是修復了我有的一個小錯誤。現在應該工作。注意:它只適用於所有數字都是單個數字。 – AntouanK

0

PHP

echo str_replace("2","1","e_new_hazard_frame_2_1_4_7"); 

更多參考訪問this。希望這會幫助你。

的JavaScript

str.replace("e_new_hazard_frame_2_1_2_4","e_new_hazard_frame_1_1_2_4"); 

更多參考訪問this

+0

他想用JavaScript來做。 – HarryFink

0

這將在海峽取代的2都發生於1:

var str = 'e_new_hazard_frame_2_1_2_4'; 
str = str.replace(/2/g,'1'); 

要更換班級的股利:

var target_class = 'e_new_hazard_frame_2_1_4_7'; 
$('.'+target_class).removeClass(target_class).addClass(target_class.replace(/2/g,'1')) 
0

我想可能是 `海峽= 'e_new_hazard_frame_2_1' 對你有用;

if(conditin1) 
{ 
pattern = /[2]/g; 
str = str.replace(pattern,'1'); 
} 

if(conditin2) 
{ 
pattern = /[1]/g; 
str = str.replace(pattern,'4'); 
} 

if(conditin3) 
{ 
pattern = /[4]/g; 
str = str.replace(pattern,'6'); 
} 

if(conditin4) 
{ 
pattern = /[7]/g; 
str = str.replace(pattern,'3'); 
}` 
1

試試這個,它可以幫助你。

<div class="e_new_hazard_frame_2_1_4_7">click to change value</div> 
<script type="text/javascript"> 
    $(".e_new_hazard_frame_2_1_4_7").on('click',function(){ 
    change_class(7); //change the value from here i.e 2,4,1,7 
}); 

function change_class(p) 
{ 
    var number_change=p; 
    switch (number_change) 
    { 
     case 2: 
     var str='e_new_hazard_frame_2_1_4_7'; 
     str = str.replace(/[2]/g,'1'); 
     break; 
     case 1: 
     var str='e_new_hazard_frame_2_1_4_7'; 
     str = str.replace(/[1]/g,'4'); 
     break; 
     case 4: 
     var str='e_new_hazard_frame_2_1_4_7'; 
     str = str.replace(/[4]/g,'6'); 
     break; 
     case 7: 
     var str='e_new_hazard_frame_2_1_4_7'; 
     str = str.replace(/[7]/g,'3'); 
     break;  
    } 
$(".e_new_hazard_frame_2_1_4_7").html(str); 
} 
</script> 

請讓我知道你是否面臨任何問題。