我正在试图弄清楚如何使用此代码执行if语句。 if语句应该根据是否读取来确定li是否获得类名。决定它的是数据[x] [messageRead] == 0但不确定如何在此追加内部执行此操作。
$.each(data, function(x)
{
$('.mail').append('<li><a href=""><strong>Received: '+data[x]['dateSent']+'</strong><small>'+data[x]['subject']+'</small><small>From: '+data[x]['firstName']+' '+data[x]['lastName']+'</small></a></li>');
});
答案 0 :(得分:2)
您可以使用ternary operator ?:
$.each(data, function(x)
{
$('.mail').append('<li' + (data[x][messageRead] == 0 ? 'class="ClassName"' : '') + '><a href=""><strong>Received: '+data[x]['dateSent']+'</strong><small>'+data[x]['subject']+'</small><small>From: '+data[x]['firstName']+' '+data[x]['lastName']+'</small></a></li>');
});
答案 1 :(得分:1)
对于这种情况,建议使用jQuery API中的方法.toggleClass()
答案 2 :(得分:1)
实际值将传递给回调的第二个值。然后首先创建li元素,然后使用严格的相等比较,如果你应该添加类:
$.each(data, function(x, value)
{
var li = $('<li><a href=""><strong>Received: '+ value.dateSent +'</strong><small>'+ value.subject +'</small><small>From: '+ value.firstName+' '+ value.lastName +'</small></a></li>');
if(value.messageRead === 0) {
li.addClass('the-class');
}
$('.mail').append(li);
});
答案 3 :(得分:1)
只是javascript ...
$.each(data, function(x)
{
if (data[x][messageRead] == 0) {
$('.mail').append('<li><a href=""><strong>Received: '+data[x]['dateSent']+'</strong><small>'+data[x]['subject']+'</small><small>From: '+data[x]['firstName']+' '+data[x]['lastName']+'</small></a></li>');
} else {
$('.mail').append('<li class="read"><a href=""><strong>Received: '+data[x]['dateSent']+'</strong><small>'+data[x]['subject']+'</small><small>From: '+data[x]['firstName']+' '+data[x]['lastName']+'</small></a></li>');
}
});
你可以重构一下,但原则就像其他任何东西一样
答案 4 :(得分:1)
尝试使用三元运算符
$.each(data, function(x)
{
$('.mail').append('<li' + (data[x][messageRead] == 0 ? ' class="yourclass"' : '')><a href=""><strong>Received: '+data[x]['dateSent']+'</strong><small>'+data[x]['subject']+'</small><small>From: '+data[x]['firstName']+' '+data[x]['lastName']+'</small></a></li>');
});
应该做的伎俩。
答案 5 :(得分:1)
您可以这样做:
$.each(data, function(x)
{
$('.mail').append('<li' + (data[x][messageRead] == 0 ? ' class="myClass"' : '') + '><a href=""><strong>Received: '+data[x]['dateSent']+'</strong><small>'+data[x]['subject']+'</small><small>From: '+data[x]['firstName']+' '+data[x]['lastName']+'</small></a></li>');
});
答案 6 :(得分:1)
做这样的事情:
$.each(data, function(x)
{
$('.mail').append('<li class="' + ((data[x][messageRead] == 0)?'read':'unread') + '"><a href=""><strong>Received: '+data[x]['dateSent']+'</strong><small>'+data[x]['subject']+'</small><small>From: '+data[x]['firstName']+' '+data[x]['lastName']+'</small></a></li>');
});
希望它有所帮助!
答案 7 :(得分:1)
我相信这会给你你想要的东西。
$.each(data, function(x)
{
var item = $('<li><a href=""><strong>Received: '+data[x]['dateSent']+'</strong><small>'+data[x]['subject']+'</small><small>From: '+data[x]['firstName']+' '+data[x]['lastName']+'</small></a></li>');
if(data[x]['messageRead'] == 0){
item.addClass('new');
}
$('.mail').append(item);
});
答案 8 :(得分:1)
您可以使用三元运算符,并仅在满足条件时添加类。
为了便于阅读,我将类存储在变量中,但它当然也可以在追加中完成。
$.each(data, function(x)
{
var classString = (data[x]['messageRead'] == 0) ? " class=\"read\"" : "";
$('.mail').append('<li' + classString +'><a href=""><strong>Received: '+data[x]['dateSent']+'</strong><small>'+data[x]['subject']+'</small><small>From: '+data[x]['firstName']+' '+data[x]['lastName']+'</small></a></li>');
});