簡體   English   中英

If/else Javascript 語句未按預期運行

[英]If/else Javascript statement not behaving as expected

我正在使用 ajax 查詢數據庫並對結果進行 json_encoded。 以下是其中一項的示例。 比較biduser_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_pointsbid都是字符串,請將其轉換為整數並將其傳遞給條件。

if(parseInt(data[i].user_points) < parseInt(data[i].bid))

您的 JSON 以字符串形式返回user_pointsbid ,並且您希望它們以數字形式返回。 您應該更改 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM