使用jquery

时间:2017-09-24 02:17:16

标签: jquery html

使用jQuery,我试图找到解决问题的方法。

我有这个HTML ...

<p class="prodReview prodReviewsNN"></p>

......并且一个数字取代了&#34; NN&#34;动态。

  • 该数字可以是0到5之间的任何值,包括小数,例如1.2,3.5等。
  • 单位数字没有&#34; .0&#34;最后。

在&#34; NN&#34;之后需要做些什么。被数字取代......

  1. 如果数字为1,则删除小数点,例如1.2变为12。
  2. 如果数字是单个数字,例如1或4,则在末尾添加零,例如10或40。
  3. 提前感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

您可以使用这个简单的插件:

(function ($) {
    $.fn.replaceClass = function (pFromClass, pToClass) {
         pToClass = editDecimal(pToClass)  // DECIMAL MANIPULATION
        return this.removeClass(pFromClass).addClass(pToClass);
    };
}(jQuery)); 

function editDecimal(pToClass){
    var num = pToClass.split("prodReviews")[1]  // will get the NN part                 
    num = num* 10 
    pToClass = "prodReviews"+num
    console.log(pToClass)
    return pToClass 

}

用法:

$('.prodReview').replaceClass('prodReviewsNN','prodReviews2');
$('.prodReview').replaceClass('prodReviewsNN','prodReviews3.2');

在:

<p class="prodReview prodReviewsNN"></p>

后:

<p class="prodReview prodReviews20"></p>
<p class="prodReview prodReviews32"></p>

答案 1 :(得分:0)

你为什么需要这个?为什么不将数字存储在DOM元素中?

反正...

var num = 2;
document.querySelector('.prodReview').className = 'prodReview prodReviews'+num;

下次你需要重写课程时......

var newNum = 5;

document.querySelector('.prodReview .prodReviews'+oldNum).className = 'prodReview prodReviews'+newNum;

但更好的解决方案是将数字存储在DOM中

var n = 2;
document.querySelector('.prodReview').n = n;

然后使用:

var needle = 5;

var element = [].slice.call(document.querySelectorAll('.prodReview')).filter(function(e){return e.n == needle})[0]