京东前端第一题,本地能实现但是通过是百分值0的宝宝们

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
</head>
<style>
	body,html{
    padding: 0;
    margin: 0;
    font-size: 14px;
    color: #000000;
}
table{
    border-collapse: collapse;
    width: 100%;
    table-layout: fixed;
}
thead{
    background: #3d444c;
    color: #ffffff;
}
td,th{
    border: 1px solid #e1e1e1;
    padding: 0;
    height: 30px;
    line-height: 30px;
    text-align: center;
}
</style>
<body>
	<table id="jsTrolley">
	    <thead><tr><th>名称</th><th>价格</th><th>操作</th></tr></thead>
	    <tbody>
	        <tr><td>产品1</td><td>10.00</td><td><a href="javascript:void(0);">删除</a></td></tr>
	        <tr><td>产品2</td><td>30.20</td><td><a href="javascript:void(0);">删除</a></td></tr>
	        <tr><td>产品3</td><td>20.50</td><td><a href="javascript:void(0);">删除</a></td></tr>
	    </tbody>
	    <tfoot><tr><th>总计</th><td colspan="2">60.70(3件商品)</td></tr></tfoot>
	</table>
	<script>
		function add(items){
			var tbody = document.querySelectorAll("#jsTrolley tbody");
			for(var z=0;z<items.length;z++){
				var trNew = document.createElement("tr");
				for(var i =0;i<3;i++){
					var tdNew = createEle();
					switch(i){
						case(0):{
							tdNew.innerHTML=items[z]["name"];
							trNew.appendChild(tdNew);
						}break;
						case(1):{
							tdNew.innerHTML=items[z]["price"];
							trNew.appendChild(tdNew);
						}break;
						case(2):{
							var aTag = document.createElement("a");
							aTag.href="javascript:void(0)";
							aTag.innerHTML="删除";
							tdNew.appendChild(aTag)
							trNew.appendChild(tdNew);
						}break;
					}
				}
				tbody[0].appendChild(trNew);
			}
			//tfoot内容更新
			var price=0;
			var tfoot=document.querySelectorAll("#jsTrolley tfoot");
			var tfootCon = document.querySelectorAll("#jsTrolley tfoot tr td")
			var tbodyTd = document.querySelectorAll("#jsTrolley tbody tr td");
			var tbodyTr = document.querySelectorAll("#jsTrolley tbody tr");
			var len = tbodyTr.length;
			for(var n =0;n<tbodyTr.length;n++){
				price = Number(tbodyTr[n].childNodes[1].innerHTML)+price;
			}
			str=price+"("+len+"件商品)";
			console.log(str);
			tfootCon[0].innerHTML=str;


		}
		function createEle(){
			var tdNew = document.createElement("td");
			return tdNew;
		}
		function bind(){
			var arr=[];
			var tbodyTr = document.querySelectorAll("#jsTrolley tbody tr");
			var tbody = document.querySelectorAll("#jsTrolley tbody ");
			var tbodyTrA = document.querySelectorAll("#jsTrolley tbody tr td a");
			for(let i = 0;i<tbodyTrA.length;i++){
				tbodyTrA[i].onclick=function(){
					tbodyTr[i].style.display="none";
					var price=0;
					var tfoot=document.querySelectorAll("#jsTrolley tfoot");
					var tfootCon = document.querySelectorAll("#jsTrolley tfoot tr td")
					var tbodyTd = document.querySelectorAll("#jsTrolley tbody tr td");
					var len = 0;
					for(var n =0;n<tbodyTr.length;n++){
						if(tbodyTr[n].style.display=="none"){
							continue;
						}else{
							len++;
							price = Number(tbodyTr[n].childNodes[1].innerHTML)+price;
						}
					}
					str=price+"("+len+"件商品)";
					console.log(str);
					tfootCon[0].innerHTML=str;
				}
			}
		}
		var items=[{"name":"产品4","price":"5.00"},{"name":"产品5","price":"5.00"}];
		add(items);
		bind();
		var tfootCon = document.querySelectorAll("#jsTrolley tfoot tr td")
		tfootCon.innerHTML="bihao";
	</script>
</body>
</html>

#京东#
全部评论
厉害啊 都没想到 querySelector
点赞 回复 分享
发布于 2017-09-08 21:10
直接append 这样的字符串数组`<tr><td>${item.name}</td><td>${item.price}</td><td><a href="javascript:void(0);">删除</a></td></tr>`简单点吧,
点赞 回复 分享
发布于 2017-09-08 21:38
这是求助帖啊
点赞 回复 分享
发布于 2017-09-08 21:06
我的: class CountInfo { constructor() { let tfoot = document.getElementsByTagName("tfoot")[0] let countInfoTag = tfoot.children[0].children[1] let tmp = countInfoTag.innerHTML.match(/\d+/g) let countInfo = { price: 0, num: 0 } countInfo.price = (tmp[0] - 0) + (tmp[1] - 0) * 0.01 countInfo.num = tmp[2] - 0 this.countInfoTag = countInfoTag this.countInfo = countInfo } delete(price) { this.countInfo.num-- this.countInfo.price = this.countInfo.price - price this.countInfoTag.innerHTML = `${this.countInfo.price.toFixed(2)}(${this.countInfo.num}件商品)` } add(price) { this.countInfo.num++ this.countInfo.price = this.countInfo.price + price this.countInfoTag.innerHTML = `${this.countInfo.price.toFixed(2)}(${this.countInfo.num}件商品)` } } bind() function add(items) { let tr = document.createElement("tr") tr.innerHTML = `<td>${items.name}</td><td>${items.price.toFixed(2)}</td><td><a href="javascript:void(0);">删除</a></td>` let tbody = document.getElementsByTagName("tbody")[0] tbody.appendChild(tr) tr.children[2].children[0].onclick = click const countInfo = new CountInfo() countInfo.add(items.price) } function bind() { let tags = document.getElementsByTagName("a") const LEN = tags.length for (let i = 0; i < LEN; i++) { tags[i].onclick = click } } function click(e) { const countInfo = new CountInfo() let tr = e.srcElement.parentElement.parentElement countInfo.delete(tr.children[1].innerHTML - 0) tr.remove() }
点赞 回复 分享
发布于 2017-09-08 21:11
我的网页上也能删除成功,价格也是对的,最后还是通过0
点赞 回复 分享
发布于 2017-09-08 21:12
答案在此 https://www.nowcoder.com/discuss/38889
点赞 回复 分享
发布于 2017-09-08 21:19
我也是0,
点赞 回复 分享
发布于 2017-09-08 21:19
是求助帖吗?楼主好像在price输入的时候没有toFixed(2)
点赞 回复 分享
发布于 2017-09-08 21:28
我猜 他们只允许你在函数里封装私有变量 不允许在全局Window下声明变量,我的也是声明变量存结果,导致A不过
点赞 回复 分享
发布于 2017-09-08 21:41

相关推荐

最近又搬回宿舍了,在工位坐不住,写一写秋招起伏不断的心态变化,也算对自己心态的一些思考表演式学习从开始为实习准备的时候就特别焦虑,楼主一开始选择的是cpp后端,但是24届这个方向已经炸了,同时自己又因为本科非92且非科班,所以感到机会更加迷茫。在某天晚上用java写出hello&nbsp;world并失眠一整晚后选择老本行干嵌入式。理想是美好的,现实情况是每天忙但又没有实质性进展,总是在配环境,调工具,顺带还要推科研。而这时候才发现自己一直在表演式学习,徘徊在设想如何展开工作的循环里,导致没有实质性进展。现在看来当时如果把精力专注在动手写而不是两只手端着看教程,基本功或许不会那么差。实习的焦虑5月,楼主...
耶比:哲学上有一个问题,玛丽的房间:玛丽知道眼睛识别色彩的原理知道各种颜色,但是她生活在黑白的房间里,直到有一天玛丽的房门打开了她亲眼看到了颜色,才知道什么是色彩。我现在最大可能的减少对非工作事情的思考,如果有一件事困扰了我, 能解决的我就直接做(去哪里或者和谁吵架等等……),解决不了的我就不想了,每一天都是最年轻的一天,珍惜今天吧
投递比亚迪等公司10个岗位 > 秋招被确诊为…… 牛客创作赏金赛
点赞 评论 收藏
分享
10-11 17:45
门头沟学院 Java
走吗:别怕 我以前也是这么认为 虽然一面就挂 但是颇有收获!
点赞 评论 收藏
分享
我已成为0offer的糕手:别惯着,胆子都是练出来的,这里认怂了,那以后被裁应届被拖工资还敢抗争?
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务