[英]If/else Javascript statement not behaving as expected
我正在使用 ajax 查詢數據庫並對結果進行 json_encoded。 以下是其中一項的示例。 比較bid
和user_points
,我要么顯示“積分不足”或“立即購買”按鈕。
[
{
"id": "205",
"item_id": "727",
"winner_id": "62",
"bid": "153",
"status": "1",
"date": "2015-09-05 05:53:12",
"exp_date": "2015-09-07 05:53:12",
"user_id": "296",
"item_title": "neptun",
"stime": 84178,
"time_left": "0 d : 23 h : 22 m",
"user_points": "1222",
"user_thumb": "images\/ppic\/15x\/296.jpg?x=timestamp"
}
]
用於將每個元素附加到#pending-wins
的 Javascript。 問題在於data[i].user_points < data[i].bid
。 使用上面的示例,它應該顯示“立即購買”按鈕,而不是顯示“積分不足”按鈕。 知道為什么嗎?
$.each(data, function(i)
{
$("#pending-wins").append(
'<div class="col-sm-5 col-md-3">\
<div class="thumbnail">\
<a href="item?id='+data[i].item_id+'"><img src="images/355x/'+data[i].item_id+'-1.jpg" alt="" /></a>\
<h3>'+data[i].item_title+'</h3>\
<div class="caption">\
<ul class="list-group">\
<li class="list-group-item">\
<span class="badge">'+data[i].bid+'</span>\
Cost\
</li>\
<li class="list-group-item">\
<span class="badge user-badge"><img src="'+data[i].user_thumb+'" alt="" /></span>\
Seller\
</li>\
<li class="list-group-item">\
<span class="badge">'+data[i].time_left+'</span>\
Time left:\
</li>'
+(data[i].user_points < data[i].bid ?
'<li class="list-group-item">\
<span class="badge background-none"><a href="points"><button>Click here</button></a></badge></span>\
Not enough points for this item.\
</li>'
:
(data[i].stime <= 0 ?
''
:
'<li class="list-group-item center"><button id="claim-'+data[i].item_id+'" class="btn btn-primary btn-sm claim">Claim Win</button></li>'
)
)+
'</ul>\
</div>\
</div>\
</div>'
);
});
作為響應, user_points
和bid
都是字符串,請將其轉換為整數並將其傳遞給條件。
if(parseInt(data[i].user_points) < parseInt(data[i].bid))
您的 JSON 以字符串形式返回user_points
和bid
,並且您希望它們以數字形式返回。 您應該更改 PHP 以不同方式發送數據。
雖然,如果你不能改變 PHP,你可以改變你的 Javascript 來轉換它們:
var data =[ { "id": "205", "item_id": "727", "winner_id": "62", "bid": "153", "status": "1", "date": "2015-09-05 05:53:12", "exp_date": "2015-09-07 05:53:12", "user_id": "296", "item_title": "neptun", "stime": 84178, "time_left": "0 d : 23 h : 22 m", "user_points": "1222", "user_thumb": "images\\/ppic\\/15x\\/296.jpg?x=timestamp" } ]; $.each(data, function(i) { $("#pending-wins").append( '<div class="col-sm-5 col-md-3">\\ <div class="thumbnail">\\ <a href="item?id='+data[i].item_id+'"><img src="images/355x/'+data[i].item_id+'-1.jpg" alt="" /></a>\\ <h3>'+data[i].item_title+'</h3>\\ <div class="caption">\\ <ul class="list-group">\\ <li class="list-group-item">\\ <span class="badge">'+data[i].bid+'</span>\\ Cost\\ </li>\\ <li class="list-group-item">\\ <span class="badge user-badge"><img src="'+data[i].user_thumb+'" alt="" /></span>\\ Seller\\ </li>\\ <li class="list-group-item">\\ <span class="badge">'+data[i].time_left+'</span>\\ Time left:\\ </li>' +(Number(data[i].user_points) < Number(data[i].bid) ? '<li class="list-group-item">\\ <span class="badge background-none"><a href="points"><button>Click here</button></a></badge></span>\\ Not enough points for this item.\\ </li>' : (data[i].stime <= 0 ? '' : '<li class="list-group-item center"><button id="claim-'+data[i].item_id+'" class="btn btn-primary btn-sm claim">Claim Win</button></li>' ) )+ '</ul>\\ </div>\\ </div>\\ </div>' ); });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div id="pending-wins"></div>
短代碼:
Number(data[i].user_points) < Number(data[i].bid)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.