-1

ユーザーグループのタイトルのテキストの色を変えようとしていますが、少し問題があります。これを使っていたのですが、なぜかうまくいきませんでした。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 に答える