用更高的值替换页面上的值

时间:2014-01-11 22:36:43

标签: jquery html

假设我们在网站上有这段代码

<p> 30.24 </p>

我怎么能设法使用jQuery来改变60以下任何数字的值,使用70到120之间的随机数以及可选的小数?

2 个答案:

答案 0 :(得分:3)

使用jQuery选择页面上的所有p元素。然后为html函数提供匿名函数以更改每个数字的值。

$("p").text(function(i,text){
    if(isNaN(text)){
        return;
    } 
    var value = parseFloat(text);
    if(value >= 0 && value > 20 &&  value < 60){
        var replacement = (Math.random() * 51 + 70) + "";
        return replacement.substring(0,(replacement > 100) ? 6:5);
    }
});

JS小提琴: http://jsfiddle.net/VnHh6/3/

阅读完评论后,您似乎想要替换一些文字所包围的这些数字。上面的代码不能满足这个需求。如果必须替换文本所包围的数字,请考虑使用下面的代码。

$("p").text(function(i,text){
    var regex = new RegExp('(\\d+(?:.\\d{2})?)', 'g');
    var matches = text.match(regex);

    for(var i = 0; i < matches.length; i++){
        var value = parseFloat(matches[i]);
        if(value >= 0 && value > 20 &&  value < 60){
            text = text.replace(matches[i], (Math.random() * 51 + 70).toFixed(2));
        }
    }
    return text;
});

JS小提琴: http://jsfiddle.net/VnHh6/5/

答案 1 :(得分:0)

var rand = function(){
    return Math.floor(Math.random() * 51 + 70);
}

if(parseFloat($('p').text())<60){
    $('p').text(rand())
}

jsfiddle