这个商家列表我是使用的字符串拼接方式插入的,但是到这里全部修改完后,商家列表的样式没有生效

这个商家列表我是使用的字符串拼接方式插入的,但是到这里全部修改完后,商家列表的样式没有生效

我的只有contenList.js中插入商家列表的代码不一样,其他的都和老师的一样的,contenList.js如下

(function() {


    /* 获取商家列表数据

        param

     */

    function getList() {

        // 获取contentList的数据

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

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

            initContentList(list);

        });

    }


    /* 渲染是否时新到热门品牌标签

        param {} data

    */

    function getBrand(data) {

        if (data.brand_type) {

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

        } else {

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

        }

    }


    /* 渲染月售

        param {} data

    */

    function getMonthNum(data) {

        var num = data.month_sale_num;


        // 大于999采用999+

        if (num > 999) {

            return '999+';

        }


        return num;

    }


    /* 渲染商家活动

        param {} data

    */

    function getOthers(data) {

        var array = data.discounts2;

        var str = '';


        array.forEach(function(item, index) {

            // 内部的商家活动字符串更新并拼接

            str += '<div class="other-info">' +

                '<img src=' + item.icon_url + ' class="other-tag"/>' +

                '<p class="other-content one-line">' + item.info + '</p>' +

                '</div>';

        });

        return str;

    }


    /* 渲染列表数据

        param []

     */

    function initContentList(list) {

        var html = '';

        list.forEach(function(item, index) {

            // 商家详情的模板字符串

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

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

                getBrand(item) +

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

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

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

                '<div class="item-score">' + new StarScore(item.wm_poi_score).getStars() + '</div>' +

                '<div class="item-count">月售' + getMonthNum(item) + '</div>' +

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

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

                '</div>' +

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

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

                '</div>' +

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

                getOthers(item) +

                '</div>' +

                '</div>' +

                '</div>';

        })

        $('.list-wrap').html(html);

    }


    function init() {

        getList();

    }


    init();

})();

这是我引入css文件的路径http://img1.sycdn.imooc.com//climg/5ea8e12b094787e007280291.jpg

这是我的文件夹结构

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

打开页面是这样的,也没有报错,

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

在elements里面看各个元素的样式,显示的没有引入相关文件http://img1.sycdn.imooc.com//climg/5ea8e2170945234009630586.jpg

正在回答

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

4回答

同学你好,可以自己解决部分问题很棒,继续加油。另,关于文件的顺序:渲染的顺序是从上到下的,所以主要来说要避免覆盖问题。视频老师演示的可能是没有覆盖性问题,所以效果不明显,这里给同学举一个例子,如下:

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

效果:

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

但是修改css引入顺序:

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

效果就会发生变化。

js也是如此:

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

效果:

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

假如调整js文件顺序:

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

会报错:

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

如果我的回答帮到了你,欢迎采纳,祝学习愉快~

  • Aurora_Meteor 提问者 #1
    所以说,视频里老师虽然引入文件后效果正确实现了,但是不规范。 规范的做法应该是,即使新引入的内容和其他内容是无关的,不会互相影响;但是最好按写的文件顺序来引入文件,防止出现css的覆盖问题和js的调用不到对象的问题,对不?
    2020-04-29 15:06:48
好帮手慕码 2020-04-29 19:02:28

同学你好,理解正确,继续加油,祝学习愉快~

提问者 Aurora_Meteor 2020-04-29 10:22:18

另外视频里老师引入css和js文件的顺序是随意的吗?还是有顺序要求?我看老师新引入一个文件怎么好像都是在之前文件的上面引入而不是下面,不是说页面是按顺序从上往下渲染么,所以不是应该新引入的都写在之前文件的下面才对吗?

  • 提问者 Aurora_Meteor #1
    发现问题了,类名少了个"。 麻烦老师回答下这个问题就好
    2020-04-29 10:27:59
提问者 Aurora_Meteor 2020-04-29 10:18:59

我把源码的contentList.js复制过来所有内容的样式就都正常显示了,这是为什么呀?拼接字符串的方法不能使用吗?

我是仿照老师在https://class.imooc.com/course/qadetail/207715这里的例子写的字符串拼接呀

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

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

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

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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