0

クラス 'last' を 5 要素ごとに割り当てるループを作成しましたが、何らかの理由で .className が機能しないようです。私はもともと .class を使用していましたが、ie7 と ie8 はこれでエラーになります。これを解決する方法を教えてもらえますか?

JS スニペット

success: function(response) {
                    var source = $("#calendar-template").html(),
                            template = Handlebars.compile(source),
                            gameHTML = '';

                    for (var i = 0, gameLength = response.data.games.length; i < gameLength; i++){
                        var thisGame = response.data.games[i];
                        console.log(thisGame);
                        thisGame.className = ((i+1) % 5 == 0) ? 'last' : '';

                        gameHTML += template(thisGame);
                    }

                    instance.selectors.dateWrapper.append(gameHTML);

                    deferredObject.resolve();

                    instance.displayGames();
                },

応答

data: Object
games: Array[18]
0: Object
1: Object
2: Object
3: Object
...

乾杯

4

2 に答える 2

1

handlebarsライブラリを使用していることは理解できました。

response.data.games既存の HTML コンテンツのコンテキストを含むオブジェクトです。呼び出しは、要素template(thisGame)の一部を置き換えます。#calendar-templateおそらく、{{class}}どこかに as handlebar 式があります。したがって、thisGame.classand ではなく使用する必要がありthisGame.classNameます。

DOM 要素をいじっているのではなく、ハンドルバー コンテキスト オブジェクトをいじっていることに注意してください。

于 2012-08-31T13:55:18.213 に答える
0

おそらく、var el = getElementById(thisGame);を実行する必要があります。データがajaxリクエストからのものである場合。DOM要素が含まれることはなく、クラスのようなものを設定できます。IDのみが含まれます。

于 2012-08-31T13:32:57.207 に答える