老师进行到设置品牌时突然全部信息都没了 不知道为什么 也没有报错

老师进行到设置品牌时突然全部信息都没了 不知道为什么 也没有报错

# 具体遇到的问题

# 报错信息的截图

# 相关课程内容截图

# 尝试过的解决思路和结果

# 粘贴全部相关代码,切记添加代码注释(请勿截图)

(function(){

    //商家详情模板字符串

    var itemTmpl = '<div class="r-item-content">'+

                   '<img class="item-img" src=$pic_url />'+

                   '$brand'+

                   '<div class="item-info-content">'+

                       '<p class="item-title">$name</p>'+

                       '<div class="item-desc">'+

                           '<div class="item-score">$wm_poi_score</div>'+

                           '<div class="item-count">月售$monthNum</div>'+

                           '<div class="item-distance">&nbsp;$distance</div>'+

                           '<div class="item-time">$mt_delivery_time&nbsp;|</div>'+

                       '</div>'+

                       '<div class="item-price">'+

                           '<div class="item-pre-price">$min_price_tip</div>'+

                       '</div>'+

                       '<div class="item-others">'+

                           '$others'+

                          '</div>'+

                      '</div>'+

                  '</div>';



function getList(){

    $.get('../json/homelist.json',function(data){

        console.log(data);

        var list = data.data.poilist || [];

        initContentList(list);

    });


}  

// 渲染是否是品牌标签

function getBrand(data){

    if(data.brand_type){

        return '<div class="brand brand-pin">品牌</div>';

    }else{

        return '<div class="brand brand-xin">新到</div>';

    }

}



//渲染列表数据

    function initContentList(list){

        list.forEach(function(itemindex){

            var str=itemTmpl

                    .replace('$pic_url',item.pic_url)

                    .replace('$name',item.name)

                    .replace('$distance',item.distance)

                    .replace('$min_price_tip',item.min_price_tip)

                    .replace('$brand',item.name)

                    .replace('$name',item.name)


                    .replace('$brand',getBrand(item))

            $('.list-wrap').append($(str));

        })

    }


    function init(){

        

        getList();

    }

    init();

})();



index.html

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0,maximum-scale=1.0,user-scalable=0">

    <title>首页</title>

    <script>

        //用rem 动态生成fontSize的脚本

        //设定一个匿名函数

        (function(){

            // 获取dom的document元素

            var docEl=document.documentElement;

            function setRemUnit(){

                // 获取rem的基准值

                var rem=docEl.clientWidth/10;

                // 动态设置html根元素的font-size

                docEl.style.fontSize=rem+'px';

            }

            setRemUnit();

            // 当页面窗口改变应该动态监听

            window.addEventListener('resize',setRemUnit);

            //d当用户浏览网页时触发

            window.addEventListener('pageshow',function(e){

                //当浏览器被激活

                if(e.persisted){

                    setRemUnit();

                }

            });

        })();

    </script>

    <link rel="stylesheet" href="../lib/reset.css">

    <link rel="stylesheet" href="./header.css" >

    <link rel="stylesheet" href="searchbar/searchbar.css">

    <link rel="stylesheet" href="./category/category.css">

    <link rel="stylesheet" href="./contentlist/contentlist.css">

</head>

<body>

    <!-- header开始 -->

    <div class="header">

        <div class="search-bar">

            <div class="bar-location">

                <div class="location-icon"></div>

                <div class="location-text">北京市&nbsp;&gt;</div>

            </div>

            <div class="search-btn">

                <p class="place-holder">鸡翅</p>

            </div>

        </div>

        <img src="http://img1.sycdn.imooc.com//climg/5d590b3f0001863804300245.jpg" class="header-img" >

    </div>

    <!-- header结束 -->

    <!-- 类目开始 -->

    <div class="category-content clearfix">

     <!-- 引入json数据 通过js增加dom元素 -->

    </div>

    <!-- 类目结束 -->

    <!-- 商家列表开始 -->

    <div class="list-content">

        <h4 class="list-title">

            <span class="title-line"></span>

            <span>附近商家</span>

            <span class="title-line"></span>

        </h4>

        <div class="list-wrap"></div>

    </div>

    <!-- 商家列表结束 -->

    <script type="text/javascript" src="../lib/jquery.min.js"></script>

    <script type="text/javascript" src="./category/category.js"></script>

    <script type="text/javascript" src="./contentlist/contentlist.js"></script>

</body>

</html>



在这里输入代码,可通过选择【代码语言】突出显示

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

4回答
好帮手慕久久 2020-12-09 09:35:01

同学你好,你的结构是有的,如下:

http://img1.sycdn.imooc.com//climg/5fd028a409d1c9eb15680473.jpg

http://img1.sycdn.imooc.com//climg/5fd028c5094635ac16470518.jpg

原因是同学在替换$brand时,使用的是item.name,而老师使用的是getBrand(item)这个方法:

http://img1.sycdn.imooc.com//climg/5fd0291a0944ee7d06850341.jpg

http://img1.sycdn.imooc.com//climg/5fd0292609e1e4a108940366.jpg

同学直接这样替换,会导致品牌没有类名,所以没有样式,但是品牌这个结构是有的:

http://img1.sycdn.imooc.com//climg/5fd0295b09f2a26b16730398.jpg

由于同学没有写getBrand(item)方法,老师以为同学是故意这样写的,所以和同学说效果就是对的。

中间的空白,就是因为brand样式不对导致的,同学再看一下。

祝学习愉快!

提问者 小丸子不吃丸子 2020-12-08 19:09:03

而且brand也没显示出来

提问者 小丸子不吃丸子 2020-12-08 19:08:37

没有之前渲染的数据了 这个一大片空白正常么

好帮手慕久久 2020-12-08 19:07:01

同学你好,老师测试你的代码,能正确渲染出内容:

http://img1.sycdn.imooc.com//climg/5fcf5e1f091d8c6206100687.jpg

http://img1.sycdn.imooc.com//climg/5fcf5e720971590c07370735.jpg

同学看下自己是否保存了代码,或者重新启动一下浏览器试试。

祝学习愉快!

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
3.WebAPP开发与小程序
  • 参与学习           人
  • 提交作业       622    份
  • 解答问题       6815    个

微信带火了小程序,也让前端工程师有了更多的展现机会,本阶段带你从移动基础知识的学习到webAPP开发,及小程序开发,让你PC端与移动端两端通吃。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师