假设我们在网站上有这段代码
<p> 30.24 </p>
我怎么能设法使用jQuery来改变60以下任何数字的值,使用70到120之间的随机数以及可选的小数?
答案 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())
}