Javascript MyBB中文本颜色交替的问题

Javascript MyBB中文本颜色交替的问题,javascript,mybb,Javascript,Mybb,我试图为我的用户组标题替换文本颜色,但遇到了一点麻烦。我用过这个,但由于某种原因它不能正常工作。它只会出现在一个地方,其他任何地方都不会正常工作,而且它还切断了他们用户名的最后一个字母 这是javascript: window.onload=function(){ var HTML = ''; function alternate(colorpair) { var el = document.getElementById('alternator'); if (!HTML

我试图为我的用户组标题替换文本颜色,但遇到了一点麻烦。我用过这个,但由于某种原因它不能正常工作。它只会出现在一个地方,其他任何地方都不会正常工作,而且它还切断了他们用户名的最后一个字母

这是javascript:

    window.onload=function(){
var HTML = '';

function alternate(colorpair) {
    var el = document.getElementById('alternator');
    if (!HTML) HTML = el.innerHTML;
    var text = HTML.match(/\S\s*(?=\S)/g), output = '';
    for (var w=0; w<text.length; w++) {
        output += '<span style="color:' + ((w%2) ? colorpair[0] : colorpair[1]);
        output += ';">' + text[w] + '</span>';
    }
    console.log(output);
    el.innerHTML = output;
}
alternate(['green', 'purple']);
window.onload=function(){
var HTML='';
功能替代(颜色对){
var el=document.getElementById('alternator');
如果(!HTML)HTML=el.innerHTML;
var text=HTML.match(/\S\S*(?=\S)/g),输出=“”;

对于(var w=0;w您使用的是
id
,但id在文档中必须是唯一的。请使用类和
getElementsByClassName
(您不会尝试在任何位置循环元素,为什么会多次运行?)

由于您的正则表达式,它会截断最后一个字母:
(?=\S)
意味着“下一步必须有一些非空白”,因此正则表达式外总会有一个字母,您只保留正则表达式匹配的位

我对外部
var HTML
的使用感到困惑;这是不必要的,可能会在第一个之后损坏标题


最后,并不是说我是一名设计师或什么的,但我很确定绿色和紫色字母交替使用看起来会很糟糕

是的,它看起来不太好,只是一个测试。我在这里找到了其他人要求类似帮助的代码,这就是他们使用的颜色。它仍然不起作用,所以我现在就放弃。是否愿意分享你发现有效的代码?它可以帮助社区其他人解决同样的问题。
<span id="alternator" class="none">{username}.</span>