1

私はこの問題を解決しようとしていますが、解決できません..データベースからテキストを取得しています.スクロールするマーキーテキストです.要点は、各コンマの直後にテキストの色をランダムに変更したいということです(,)分離...ページの読み込み時にテキストをランダムに変更できますが、テキスト全体が変更されます。omma の後のテキストを変更したい.. こんにちは私はニックです
今はこんにちは別の色で表示する必要があります...

これが私のコードですが、すべてのテキストのランダムな色を行います

        var colours = Array("yellow", "white", "green", "orange"), indexNo;
        $('#header').each(function (index, character) {
            indexNo = Math.floor(Math.random() * colours.length);
            //alert(idx);
            $('#header').css("color", colours[indexNo]);

        });

    }, function () {
        $('#header', this).css("color", "#ddd");
    });
4

2 に答える 2

3

$("#header").each1つしかないので必要ありません。文字列.splitメソッドを使用できます。

$("#header").html(function (_, html) {
    return html.split(',').reduce(function (prev, cur) {
        return prev + "<span style='color: " +
          colours[Math.floor(Math.random() * colours.length)] + ";'>"
          + cur + "</span>";
    }, '');
});

http://jsbin.com/abikin/1/edit

編集:カンマがスパンの内側に入る必要がない場合は、代わりにこれを使用できます:

return html.split(',').map(function (elem) {
    return "<span" ... + elem + "</span>"
}).join(',');

http://jsbin.com/abikin/3/edit

于 2013-02-23T05:46:22.993 に答える
1

.reduce は IE9 以上用であるため (私が思うに)、爆発を少し作り直しました。彼は次のバージョンよりもエレガントなバージョンを作成できると確信していますが、試してみる価値はあります。これにより、すべてのテキストがランダムになりますが、それが必要かどうかはわかりません。そうでない場合は、申し訳ありません。

var colours = Array("yellow", "black", "green", "orange","red","purple");
var newHtml = [];
$("#header").html(function (_, html) {
   $.each(html.split(','),function (_,obj) {
     newHtml.push("<span style='color: " + colours[Math.floor(Math.random() * colours.length)] + ";'>" + obj + "</span>");
    });
  return newHtml.join(',');
});
于 2013-02-23T08:10:26.090 に答える