-1

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

这是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']);

这是用户组标记

<span id="alternator" class="none">{username}.</span>
4

1 回答 1

0

您使用的是id,但 ID 在文档中必须是唯一的。使用类和getElementsByClassName. (您不会尝试在任何地方循环元素,那么为什么会多次运行?)

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

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

最后,并不是说我是设计师或任何人,但我很确定交替使用绿色和紫色字母会看起来很糟糕。:)

于 2013-10-28T07:03:28.077 回答