javascript - thinkphp里模版文件js无法使用if condition的问题

查看:93
本文介绍了javascript - thinkphp里模版文件js无法使用if condition的问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

项目中有个需求是判断商品是否为VIP专享,是的话就带VIP图标,在模版直接读取数据使用if condition是可以实现的,但是在用js实现点击加载更多时,在js代码块里无法实现if condition判断,该怎么办?

初始加载代码:

            <volist name="goods" id="vo">
            <section>
                <if condition='$vo.is_vip eq 1'>
                <img src="/Application/Home/View/default/img/vip.png" class="vipPic">
                </if>
                <a href="__APP__/Home/Goods/goods/id/{$vo.gid}">
                    <div class="totleInfoPic"><img src="/Application/Home/View/default/{$vo.goods_thumb}"></div>
                    <div class="totleInfo">
                        <h2>{$vo.goods_title}</h2>                        
                        <div class="fundinginfo"><span>{$vo.goods_title2}</span><b></b></div>
                    </div>
                    <div class="q_actionBid">起拍价:¥{$vo.start_price}</div>
                    <div class="q_actionstatu">倒计时 <span class="counttime" endTime="{$vo.start_time}"></span></div>
                </a>
            </section>
            </volist>

然后通过ajax实现点击加载更多,代码如下:

                var nStart = 5;
                $('#more').click(function() {
                    var _this = $(this);
                    if (nStart >= {$total}) {
                        _this.text('更多商品正在上架中...');
                        return false;
                    }else{
                        $.post("{:U('articleAjax')}", {start: nStart},function(res) {
                            $.each(res['result'],function(i, item) {
                                _this.before('<section><if condition='item.is_vip eq 1'><img src="/Application/Home/View/default/img/vip.png" class="vipPic"></if><a href="__APP__/Home/Goods/goods/id/'+item.gid+'"><div class="totleInfoPic"><img src="/Application/Home/View/default/'+item.goods_thumb+'"></div><div class="totleInfo"><h2>'+item.goods_title+'</h2><div class="fundinginfo"><span>'+item.goods_title2+'</span><b></b></div></div><div class="q_actionBid">起拍价:¥'+item.start_price+'</div><div class="q_actionstatu">倒计时 <span class="counttime" endTime="'+item.start_time+'"></span></div></a></section>');
                            });
                        });
                        nStart += 5;
                    }
                });

问题就出在js中<if condition='item.is_vip eq 1'>这个位置,无法实现判断,换了好几种写法都不行,怎么办?

解决方案

js的ajax。你获取到的数据会在res里面。然后你遍历res['result']。你的判断肯定是js的判断方式啊。三目运算符会吧。?:

就是下面这个样子
_this.before('<section>'+(item.is_vip == 1?'<img src="/Application/Home/View/default/img/vip.png" class="vipPic">':'')+'<a href="__APP__/Home/Goods/goods/id/'+item.gid+'"><div class="totleInfoPic"><img src="/Application/Home/View/default/'+item.goods_thumb+'"></div><div class="totleInfo"><h2>'+item.goods_title+'</h2><div class="fundinginfo"><span>'+item.goods_title2+'</span><b></b></div></div><div class="q_actionBid">起拍价:¥'+item.start_price+'</div><div class="q_actionstatu">倒计时 <span class="counttime" endTime="'+item.start_time+'"></span></div></a></section>');
                        
                        
                        


有多个值需要判断的情况下

var str = "";
switch(item.is_vip){
    case 1:str = '<img src="/Application/Home/View/default/img/vip.png" class="vipPic">';break;
    case 2:str = "12";break;
    case 3:str = "123456789";break;
}
_this.before('<section>'+(str)+'<a href="__APP__/Home/Goods/goods/id/'+item.gid+'"><div class="totleInfoPic"><img src="/Application/Home/View/default/'+item.goods_thumb+'"></div><div class="totleInfo"><h2>'+item.goods_title+'</h2><div class="fundinginfo"><span>'+item.goods_title2+'</span><b></b></div></div><div class="q_actionBid">起拍价:¥'+item.start_price+'</div><div class="q_actionstatu">倒计时 <span class="counttime" endTime="'+item.start_time+'"></span></div></a></section>');                           
                        


有多个值需要判断的情况下,改成function

function is_vip_show(_value){
    switch(_value){
        case 1:return '<img src="/Application/Home/View/default/img/vip.png" class="vipPic">';
        case 2:return = "12";
        case 3:return = "123456789";
    }
    return "";
}
_this.before('<section>'+is_vip_show(item.is_vip)+'<a href="__APP__/Home/Goods/goods/id/'+item.gid+'"><div class="totleInfoPic"><img src="/Application/Home/View/default/'+item.goods_thumb+'"></div><div class="totleInfo"><h2>'+item.goods_title+'</h2><div class="fundinginfo"><span>'+item.goods_title2+'</span><b></b></div></div><div class="q_actionBid">起拍价:¥'+item.start_price+'</div><div class="q_actionstatu">倒计时 <span class="counttime" endTime="'+item.start_time+'"></span></div></a></section>');

这篇关于javascript - thinkphp里模版文件js无法使用if condition的问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆