2011-04-21 17 views
1

我的问题是有关这个话题here.与使用jQuery更换

我需要用一个字符串数量一个jQuery替换功能为好,但更精细,虽然字符串替换数。

我的PHP以这种格式例如1.27

返回一个数取决于该数量应该通过某些字符串匹配的范围内进行替换的范围:

实施例:

数1.27处于1.0和1.5的“有效”范围内,因此替换为字符串“有效”。 1.51的值应该在1.5到2.0的“不活跃”范围内,并且替换字符串将是“不活跃”字符串。

任何想法非常赞赏

+0

为什么不分析和处理类似的if语句?虽然可以通过正则表达式解决,但它感觉不是正确的工具。 – cherouvim 2011-04-21 08:41:23

回答

-1

我不明白什么jQuery有什么关系,但是这是真的很简单...

var state = 'Default'; 
if(value > 1 && value < 1.5) 
state = 'Active'; 
else if(value < 2) 
state = 'Less active'; 
else if(value < 3) 
state = 'Sleeping'; 

您可能希望获得有关编程的一本好书,这真的不应该成为一个问题。

+0

这不是他所要求的。他希望“UserA - 1.27:UserB - 1.51”成为“UserA - 活动:UserB - 不活跃” – DhruvPathak 2011-04-21 08:42:05

+0

我的坏,没有读他链接的线程。 – TJHeuvel 2011-04-21 08:42:58

3

访问页面中的文本可以使用jQuery完成,但其余代码是纯Javascript。

您可以使用正则表达式查找号码,然后使用该决定如何处理取代它,像这样的功能:

var element = $('#id'); 
element.text(element.text().replace(/[\d\.]+/g, function(s){ 
    var n = parseDouble(s); 
    if (n >= 1.0) { 
    if (n <= 1.5) return "active"; 
    if (n <= 2.0) return "less active"; 
    } 
    return s; 
})); 
1

可惜你不能用一个单一的代码行做到这一点。你必须做一些这样的:

$(".number").each(function(){ 
    var elm = $(this); 
    var number = parseFloat(elm.text(), 10); 
    if (number >= 1 && number <= 1.5) { 
     state = "active"; 
    } else if (number >= 1.5 && number < 2) { 
     state = "less active"; 
    } 
    elm.text(state); 
}); 

看到上面example on jsFiddle

+0

谢谢你真的做得很好 – Christian 2011-04-23 05:40:45

+0

在我的情况下,我需要使用一个类,而不是由于dom的id。自动取款机这当然不工作[链接](http://jsfiddle.net/interfacer/k72uc/7/) – Christian 2012-07-18 16:44:09

+0

@Christian更新,以便它与多个元素(类) – mekwall 2012-07-19 17:22:20