0

我创建了一个循环,将“last”类分配给每五个元素,但由于某种原因,.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

我可以理解您正在使用车把库。

response.data.games是一个包含现有 HTML 内容的上下文的对象。该调用template(thisGame)将替换#calendar-template元素的某些部分。可能您在{{class}}某处有一个 as 车把表达式。所以,你应该使用thisGame.class而不是thisGame.className.

请记住,您不是在处理 DOM 元素,而是在处理把手上下文对象。

于 2012-08-31T13:55:18.213 回答
0

你可能需要做 var el = getElementById(thisGame); 如果您的数据来自 ajax 请求。它永远不会包含任何 DOM 元素,您可以在其上设置类之类的东西,只有一个 id。

于 2012-08-31T13:32:57.207 回答