Javascript 如何向模板元素添加不同的类?

Javascript 如何向模板元素添加不同的类?,javascript,jquery,css,backbone.js,Javascript,Jquery,Css,Backbone.js,在我的JSON文件中,我有7个对象,其中前3个具有“is_read”属性==1,,最后4个具有“is_read”==0。 我使用模板添加行,并希望根据它们的“is_read”值(”。news_read“”对于“is_read”==1和”。news_unread“”对于“is_read”==0) 然而,我最终得到了7行,它们都有“news\u unread”类。不过,console.log显示我有3个“newsData.get('is_read')==1”和4个“newsData.get('is_

在我的JSON文件中,我有7个对象,其中前3个具有
“is_read”属性==1,
,最后4个具有
“is_read”==0
。 我使用模板添加行,并希望根据它们的
“is_read”
值(
”。news_read“
”对于
“is_read”==1
”。news_unread“
”对于
“is_read”==0

然而,我最终得到了7行,它们都有“news\u unread”类。不过,console.log显示我有3个
“newsData.get('is_read')==1”
和4个
“newsData.get('is_read')==0”
对象

我想知道如何用不同的类创建行。我试图执行newsRow.addClass,但错误消息说对象
(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";
        });
    }           
}
render:function(){
news.fetchMyNews();
对于(var i=1;i您写道:

我试图执行newsRow.addClass,但错误消息说对象…(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";
        });
    }           
}
但是我在您的示例代码中找不到
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语句中添加块):


正如@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";
  }
});

你能创建一个JSFIDLE吗?现在tbody有两个类:“news\u read”和“news\u unread”。