2017-09-25 72 views
0

我有幾個div的,它有兩個班的名字,例如...如果類名具有特殊字符,這樣做

<div class="mainContainer"> 
    <div class="container"> 
     <div class="test word1.20"> 
    </div> 
    <div class="container"> 
     <div class="test word3.40"> 
    </div> 
</div> 

如果第二類名稱存在一個小數,我想刪除十進制和最後的零,所以結果會像word12。請注意,我有幾個div的這樣

我想...

if .test has a decimal, do this { 
    $(".container .test").each(function() { 
     value1 = $(this).attr("class").replace(".", ""); 
     value2 = $(this).attr("class").replace("0", ""); 
     $(this).attr("class", value1); 
     $(this).attr("class", value2); 
    }); 
} 

感謝您的見解!

+0

第一個挑戰是,你需要獲得類名,那麼你可以繼續... –

回答

0

你可以操縱的.container如下HTML:

$(function(){ 
 
    processReplacement(); 
 
    showResult(); 
 
}); 
 

 
processReplacement = function(){ 
 
    $("div.test").each(function(){ 
 
    var classes = $(this).prop('class'); 
 
    var regex = /(\bword)(.*)\b/; 
 
    
 
    var decimalClassName = regex.exec(classes)[2]; 
 
    var decimalClassNameFixed = parseFloat(decimalClassName).toString().replace('.', ''); 
 
    
 
    $(this).prop('class', classes.replace(regex, "$1" + decimalClassNameFixed)); 
 
    }); 
 
}; 
 

 
showResult = function(){ 
 
    $('.test').each(function(){ 
 
    $(this).text($(this).prop('class')); 
 
    }); 
 
};
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="mainContainer"> 
 
    <div class="container"> 
 
     <div class="test word1.20"></div> 
 
    </div> 
 
    <div class="container"> 
 
     <div class="test word3.40"></div> 
 
    </div> 
 
</div>

+0

謝謝,德!即使在沒有小數(例如,字50)或只有一個數字(例如,字5)的情況下,這也是有效的。它只會用小數改變類名。欣賞它! – user2428993