js学习记录(六) 对象的运用

今天继续美团网的模仿。主要内容是中间的分类部分:在这里插入图片描述

这里的介绍,总共分成5个类别:全部、约会聚餐、丽人SPA、电影演出、品质出游。每个类别里面有不同种类的6张卡片。如果是用html来一个个写的话,明显太麻烦了。所以想尝试一下用js让这个过程更简单。

因为是第一次尝试js对象编程,没有完整的印象,需要一步步尝试:
1.第一步是用html+css写出了一个卡片的内容

<a href="#" class="quality-card">
    		<div class="imgarea" ></div>
    		<div class="txtarea">
    			<h3>博尔主题酒店</h3>
    			<h2>元气工作日套餐</h2>
    			<p class="price">¥<span>204</span>/起</p><p class="location">国大城市广场</p>
    		</div>
    	</a> 

在这里插入图片描述

2.然后把html代码复制到js里面,照着一步步创建所有的节点。

function addCard(addcard){
    //获取卡片容器
    var cardcontainer=document.getElementsByClassName('card-container');

    //创建所有节点
    var creatCard = document.createElement('a');
    var imgarea = document.createElement('div');
    var txtarea = document.createElement('div');
    var shopName = document.createElement('h3');
    var intro = document.createElement('h2');
    var price = document.createElement('p');
    var locatio = document.createElement('p');
    var price_nm=document.createElement('span');

3.给节点添加内容

   //节点添加内容
    creatCard.setAttribute("href",addcard.lin);
    imgarea.style.backgroundImage="url("+addcard.bgImgUrl+")";
    shopName.innerHTML=addcard.shopsName;
    intro.innerHTML=addcard.inroTxt;
    price_nm.innerHTML=addcard.priceNm;
    price.innerHTML='¥'+price_nm.innerHTML+'/起';
    locatio.innerHTML=addcard.place;

4.给节点添加样式

//节点添加样式
creatCard.className='quality-card';
txtarea.className='txtarea';
price_nm.className='nm';
price.className='price';
locatio.className='location';
imgarea.className='imgarea';

5.然后把节点组织起来

//文字部分的添加
txtarea.appendChild(shopName);
txtarea.appendChild(intro);
txtarea.appendChild(price);
txtarea.appendChild(locatio);

// 卡片分为图片和文字两部分
creatCard.appendChild(imgarea);
creatCard.appendChild(txtarea);

// 把构建完成的div加入到卡片容器中
cardcontainer[0].appendChild(creatCard);

6.添加卡片的函数完成了,接下来就是构造卡片对象。卡片对象有以下属性

var card1={
    "lin":"#",  	//链接
    "bgImgUrl":"仿-美团-素材/img/hotel_interior_1.jpg",  //背景图
    "shopsName":"博尔主题酒店", //店明
    "inroTxt":"元气工作日套餐", //简要说明
    "priceNm":"204", //价格
    "place":"国大城市广场" //定位
};

7.最后调用函数,传入card对象

addCard(card1);

8.要加入其他卡片只要在创建新的card对象就可以了,方便很多。

总结
1.以现在的认知,js创建元素分以下步骤:1.创建所有节点;2.为节点添加属性内容;3.为节点添加样式;4.用appendChild方法把节点组织起来。
2.在写html的时候,一般是先写大的,再写小的。在用JS写的时候,先从最小的节点开始。最后组织的时候,也是从小到大一步步组织起来。
3.在写html的时候,有的节点是起了class名,有的没有。在写css的时候,直接用标签名来定位。导致在用JS重写的时候有些混乱,是不是如果用js,大部分标签都要起个名字方便定位?
4.越来越觉得现在做的内容是偏“技艺”的内容,像木匠,像设计师。对思维的逻辑性要求不高,要求有足够的熟练度。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值