在我的JSON文件中,我有7个对象,其中前3个有"is_read" attribute == 1,
,后4个有"is_read" == 0
。
我使用模板添加行,并希望根据"is_read"
值(".news_read"
"is_read" == 1
和".news_unread"
"is_read" == 0
来为 tr 提供不同的类{1}})。
但是,我最终有7行都有“news_unread”类。虽然,console.log显示我有3个"newsData.get('is_read') == 1"
和4个"newsData.get('is_read') == 0"
个对象。
我想知道如何创建具有不同类的行。我试图做newsRow.addClass,但是错误消息说对象<tr><td>...</td></tr>
(newsRow模板)不能有方法addClass。
render: function() {
news.fetchMyNews();
for (var i = 1; i <= news.length; i++) {
var newsData = news.get(i);
var newsRow = JST["news/row"](newsData.attributes);
$("#news_tbody").append(newsRow).first('tr').attr("class",function(){
if (newsData.get('is_read') == 1)
return "news_read";
else if (newsData.get('is_read') == 0)
return "news_unread";
});
}
}
答案 0 :(得分:0)
您写道:
我尝试做newsRow.addClass,但是错误消息说对象...(newsRow模板)不能有方法addClass。
但我在您的示例代码中找不到addClass
:
$("#news_tbody").append(newsRow).first('tr').attr("class",function(){
if (newsData.get('is_read') == 1)
return "news_read";
else if (newsData.get('is_read') == 0)
return "news_unread";
});
我可以建议您尝试使用此代码(使用addClass
而不是attr
并在if语句中添加块):
$("#news_tbody").append(newsRow).first('tr').addClass(function(){
if (newsData.get('is_read') === 1){
return "news_read";
} else if (newsData.get('is_read') === 0) {
return "news_unread";
}
});
答案 1 :(得分:0)
正如@Pinal建议的那样,我使用了addClass。
然而,append(newsRow)
之后,我使用了.children('tr')
并且工作正常。
$("#news_tbody").append(newsRow).children('tr').addClass(function(){
if (newsData.get('is_read') === 1){
return "news_read";
} else if (newsData.get('is_read') === 0) {
return "news_unread";
}
});