Jquery/PunBB将数字替换为字符串
Jquery/PunBB Replace Number with String
在Forumotion上使用PunBB的想法是使用点数系统将显示的点数替换为字符串。使用span类,我首先在显示用户点数的代码周围定义了一个类"荣誉点数"。
<span class="honorpoints"><!-- BEGIN profile_field -->{postrow.displayed.profile_field.CONTENT}<!-- END profile_field --></span>
当在论坛上使用该代码时,它会在用户的用户名旁边显示一个基于用户积分的数字。下面的jQuery代码是我试图用来替换数字的代码。
$(".honorpoints").each(function(){
var elm = $(this);
var number = parseFloat(elm.text(), 10);
if (number >= 1 && number <= 500) {
state = "rank 1";
} else if (number >= 500 && number < 3000) {
state = "rank 2";
}
elm.text(state);
});
然而,这并没有起到任何作用,数字仍然存在。它应该将UserA:234和UserB:571替换为UserA:rank 1和UserB:rank 2。然而,当在jsFiddle上使用该代码时,以及当仅使用数字而不是{postrow.displayed.profile_field.CONTENT}代码时,该代码确实有效。感谢您的帮助!
查看您在评论中提供的页面的源代码,我相信您的$('.honorpoints').each
方法在文档完全加载之前就被调用了(99546.js)。除非我遗漏了什么,否则您需要将该方法封装在$(document).ready
函数中,这样它只会在DOM准备好后执行:
$(document).ready(function() {
$(".honorpoints").each(function(){
var elm = $(this);
var number = parseFloat(elm.text(), 10);
var state = "";
if (number >= 1 && number <= 500) {
state = "rank 1";
} else if (number >= 500 && number < 3000) {
state = "rank 2";
}
elm.text(state);
});
});
我还为state
变量添加了一个声明,因为这是一个很好的做法(正如您当前的问题所述,state
变量实际上是window.state
,因为它以前没有声明)。
下面一行试图解析"UserA : 234"
,这就是为什么会出现错误。parseFloat(elm.text(), 10);
你必须修复你的if
,两者都匹配500
您可以使用以下代码进行修复:
$(".honorpoints").each(function(){
$(this).text(function(i, text) {
return text.replace(/'d+$/, function(match) {
if(match >= 1 && match <= 500) return "rank 1";
else if(match > 500 && match < 3000) return "rank 2";
});
});
});
说明:
$
:匹配字符串末尾'd
:只匹配数字+
:匹配一次或多次,可以匹配0
和5000000
演示
参考:
Regexp
:https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExpreplace
:https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/replacement.text()
:http://api.jquery.com/text/
相关文章:
- 如何用jquery替换字符串中可能变化的字符
- 用数字单位替换字符串的一部分
- 替换字符串javascript中的所有特殊字符..
- 替换字符串的脚本;在某些网站上不起作用
- 使用javascript替换字符串中除第一个和最后一个之外的所有字符
- 替换字符串中的占位符值
- 用HTML元素替换字符串的一部分
- JavaScript来替换字符串中的变量
- 如何替换字符串中最后一个出现的变量
- 在JavaScript中,如何用一个字符替换字符串中的所有字母
- 替换字符串中的数字
- 如何使用JavaScript Regex替换字符串中双引号之间的文本
- JavaScript:替换字符串两边的字符
- 用JQuery/Javascript替换字符串中的所有逗号
- 替换字符串的下一个匹配项
- JavaScript 不会替换字符串的最后一个符号
- 在 JavaScript 中替换字符串中的字母
- 修复了如何在容器中查找和替换字符串的功能
- 需要在 javascript 倒计时达到 0 后替换字符串
- j如何从给定字符串的一部分替换字符串