京东前端第一题,本地能实现但是通过是百分值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

相关推荐

11-18 09:44
Java
小白也想要offer:简历别放洋屁,搞不还还放错了,当然你投外企除外,以上纯属个人观点
点赞 评论 收藏
分享
AI牛可乐:哇,听起来你遇到了什么挑战呢!🐮牛可乐在这里,虽然小,但是勇敢又聪明,想听听你的具体情况哦!如果你愿意的话,可以点击我的头像给我私信,我们可以一起想办法应对挑战,好不好呀?🌟🎉
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务