我正在尝试为我的用户组标题替换文字颜色并遇到一些麻烦。我正在使用它,但由于某种原因它没有正常工作。它只会出现在一个地方而且没有其他地方可以正常工作,它也会切断用户名的最后一个字母。
这是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>
答案 0 :(得分:0)
您使用的是id
,但ID必须在文档中是唯一的。使用课程getElementsByClassName
。 (你不试图在任何地方循环元素,那么为什么这会多次运行?)
由于你的正则表达式,它会删除最后一个字母:(?=\S)
表示“下一步必须有一些非空格”,所以在正则表达式外面总会有一个字母 ,你只保留正则表达式匹配的位。
我对外var HTML
的使用感到困惑;这不是必要的,可能会在第一个之后破坏标题。
最后,并不是说我是设计师或其他任何东西,但我很确定交替的绿色和紫色字母看起来会很糟糕。 :)