会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 132647个问题
JAVA 全系列/第四阶段:网页编程和设计/Javascript 语言(旧) 181楼
JAVA 全系列/第四阶段:网页编程和设计/Jquery(旧) 183楼
JAVA 全系列/第四阶段:网页编程和设计/Javascript 语言(旧) 185楼
JAVA 全系列/第四阶段:网页编程和设计/Javascript 语言(旧) 186楼
JAVA 全系列/第四阶段:网页编程和设计/Jquery(旧) 187楼
JAVA 全系列/第四阶段:网页编程和设计/Jquery(旧) 188楼
JAVA 全系列/第四阶段:网页编程和设计/HTML5(旧) 189楼
JAVA 全系列/第四阶段:网页编程和设计/Jquery(旧) 190楼
JAVA 全系列/第四阶段:网页编程和设计/Javascript 语言(旧) 191楼

笔记:

<!DOCTYPE html>
<html>
	<head>
		<!-- 设置字符集 -->
		<meta charset="utf-8">
		<!-- 标题 -->
		<title>jQuery中操作元素对象的属性</title>
		<!-- 引入外部资源 start -->
		<script src="js/jquery-1.12.4.js" type="text/javascript" charset="utf-8"></script>
		<!-- 引入外部资源  end  -->
		<script type="text/javascript">
			$(function(){
				/* 获得class元素 */
				var user = $(".user"); // 获得账号的class元素的对象
				var pwd  = $(".pwd");  // 获得密码的class元素的对象
				/* 获得id元素 */
				var btn = $("#btn");   // 获得input按钮的元素的对象
				var use = $("#use");   // 获得账号的id元素的对象
				var p1 = $("#pwd1");   // 获得密码的id元素的对象
				/* 获得属性 */
				var val = use.attr("value");
				var pla = use.attr("placeholder");
				/* id为btn的点击事件 */
				btn.click(function(){
					/* 获得元素对象的属性 */
					var  type = use.attr("type");
					var  cla  = use.attr("class");
					var  pla  = use.attr("placeholder");
					console.log(type+"---"+cla+"---"+pla);
					
					/* 方式一: 能拿到输入前的默认value值和输入后的value值,是随着输入的变化而变化的。 */
					var va = use.val();
					alert(va);
					
					/* 方式二: 是只能拿到输入前的默认value值,拿不到输入后的value值。 */
					// alert(pla);
					
				})
			});
		</script>
	</head>
	<body>
		<input type="button" id="btn" value="元素属性的获得" />
		<hr />
		<form>
			账号: <input type="text" class="user" id="use" value="sxt" placeholder="请输入账号:" />
			<br><br>
			密码: <input type="password" class="pwd" id="pwd1" placeholder="请输入密码" />
		</form>
	</body>
</html>


JAVA 全系列/第四阶段:网页编程和设计/Jquery(旧) 192楼

//js页面
	//获得所有多选框的对象,将所有多选框的name全部赋值为fav
	var fav = document.getElementsByName("fav");
	//判断是否全选的操作
	function checkTest1(thi){
	//直接用this传递过来 , 所以不需要getbyid获得对象
	var flag = thi.checked;//判断是否选择
	
	
//	if(flag){
//		//遍历所有多选框
//		for(var i in fav){
//			fav[i].checked = true;
//		}
//	}
//	else{
//		for(var i in fav){
//			fav[i].checked = false;
//		}
//	}
		//直接合并
		for(var i in fav){
			fav[i].checked = flag;
		}

}


//单选决定全选
 	function checkTest2(){
 		//定义一个flag
 		var flag = true;
 	
 		for(var i= 1;i<fav.length-1;i++){
 			if(!fav[i].checked){
 				//只要有一个没有被选择
 				flag = false;
 				break;
 			}
 				
 		}
 		//决定框是否勾选
 		fav[0].checked = flag;
 		fav[fav.length-1].checked = flag;
 				
 				
 				
 				
 				var zong = 0;
 				
 			//价格是否统计
 			for(var i =1;i<fav.lentgh-1;i++){
 				
 				//先找ul的节点,在找它的子节点获得价格
 				
 				if(fav[i].checked){
 					//获得ul父节点
 					var par = fav[i].parentNode.parentNode;
 					var li =par.getElementsByTagName("li");  //获得我们指定ul下面的所有li
 					
 					//单个商品的总价格
 					var z = li[6].innerText.split("¥")[1];//选取ul节点下的第六个子节点li
 					
 					
 					
 					//获得我们所有商品的总价格
 					zong += Number(z);
 					document.getElementById("zongz").innerText = zong;
 					
 					
 				}
 			}
 		
 	}
 	
 	
 	//控制数量的增加和减少
 	function checkPlus(thi){
 		//获得上一个节点对象
 		var pre = thi.previousElementSibling;
 		
 		//获得节点的value值
 		
 		pre.value = Number(pre.value)+1;
 		
 		
 		
 	}
 	
 	function checkReduce(thi){
 		//获得下一个节点对象
 		var next = thi.nextElementSibling;
 		next.value = Number(next.value)-1;
 	}
 	
 	//通用方法
 	function check(thi,num){
 		var pre;
 		if(num==1){
 			//获得下一个节点对象
 			//当pre大于0时,才可以执行减一
 				pre= thi.nextElementSibling;
 			if(Number(pre.value)>0){
 				pre.value= Number(pre.value)-1;
 			}
 			
 		}
 		else{
 			//获得上一个节点对象
 			var pre = thi.previousElementSibling;
 		
 		//获得节点的value值
 		
 			pre.value = Number(pre.value)+1;
 		}
 		
 		//previousElementSibling返回上一个节点的HTML内容
 		//计算每一个商品的总价格
 		//获得li每一个商品的单价节点
 		var val = pre.parentNode.previousElementSibling.innerHTML; //获得单价成功
 		val = val.replace("¥","");
 		var zong = Number(val)* Number(pre.value);
 		pre.parentNode.nextElementSibling.innerHTML = "¥"+zong;
 		
 			
 	}
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 
 	
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<!--引入CSS-->
		<link rel="stylesheet" type="text/css" href="css/reset.css"/>
		<link rel="stylesheet" type="text/css" href="css/jds.css"/>
		
		<!--引入图标的css-->
		<link rel="stylesheet" type="text/css" href="icon/iconfont.css"/>
		
		<script src="js/jd.js" type="text/javascript" charset="utf-8"></script>
	</head>
	<body>
		<!--导航开始-->
			<div class="nav">
				<!--在div里在创建一个div 用于居中-->
				<div class="warp">
					<ul class="nav_ul1">
						
						<!--加入标签的方法-->
						<li><a href=""><i class="iconfont">&#xe6d5;</i>京东首页</a></li>
						<li><a href="">配送至:艺沣</a></li>
					</ul>
					
					<ul class="nav_ul2">
						<li><a href="">洋洋宝贝</a><span>|</span></li>
						<li><a href="">我的订单</a><span>|</span></li>
						<li><a href="">我的京东</a><span>|</span></li>
						<li><a href="">京东会员</a><span>|</span></li>
						<li><a href="">企业采购</a><span>|</span></li>
						<li><a href="">京东手机</a><span>|</span></li>
						<li><a href="">关注京东</a><span>|</span></li>
						<li><a href="">客户服务</a><span>|</span></li>
						<li><a href="">网站导航</a></li>
					</ul>
				</div>
				
			</div>
			
			
		<!--导航结束-->
		
		<!--搜索框开始-->
			<div class="search">
				<div class="warp">
					<img src="img/logo.jpg" />
					
					<div class="search_div">
						<input type="text" class="search_text"/>
						<input type="button" value="搜索" class="search_but"/>
					</div>
				</div>
			</div>
		<!--搜索框结束-->
		
		
		<!--标题开始-->
			<div class="title warp">
				<h3>全部商品2</h3>
				<div >
					<span>配送到</span>
					<select>
						<option>中卫市</option>
						<option>重庆市</option>
						<option>安徽</option>
						<option>临汾</option>
						<option>上海市</option>
					</select>
				</div>
			</div>
		<!--标题结束-->
		
		
		<!--显示菜单开始-->
			<div class="tips warp" >
				<ul>
					<li>
						<input type="checkbox" id="all" name="fav" onclick="checkTest1(this)"/>全选
					</li>
					<li>商品</li>
					<li>单价</li>
					<li>数量</li>
					<li>小计</li>
					<li>操作</li>
				</ul>
			</div>
		<!--显示菜单结束-->
		
		
		<!--商品详情展示开始-->
			<div class="info warp">
				<ul>
					<li class="info_1">
						<input type="checkbox"  name = "fav" onclick="checkTest2()"/>
					</li>
					<li class="info_2"> <img src="img/img1.jpg" width="80px"</li>
					<li class="info_3"><a>【京东超市】desha春秋季儿童休闲服</a> </li>
					<li class="info_4"><a>颜色:灰色+粉红</a></li>
					<li class="info_5">¥182.5</li>
					<li class="info_6">
						<button onclick="check(this,1)">-</button>
						<input type="text" value="1"/>
						<button class="bot" onclick="check(this,2)">+</button>
					</li>
					<li class="info_7">¥182.5</li>
					<li class="info_8">
						<a>删除</a>
						<br />
						<a>移到我的关注</a>
					</li>
				</ul>
			</div>
			
			<div class="info warp">
				<ul>
					<li class="info_1">
						<input type="checkbox"  name = "fav" onclick="checkTest2()"/>
					</li>
					<li class="info_2"> <img src="img/img1.jpg" width="80px"</li>
					<li class="info_3"><a>【京东超市】desha春秋季儿童休闲服</a> </li>
					<li class="info_4"><a>颜色:灰色+粉红</a></li>
					<li class="info_5">¥182.5</li>
					<li class="info_6">
						<button onclick="check(this,1)">-</button>
						<input type="text" value="1"/>
						<button class="bot" onclick="check(this,2)">+</button>
					</li>
					<li class="info_7">¥182.5</li>
					<li class="info_8">
						<a>删除</a>
						<br />
						<a>移到我的关注</a>
					</li>
				</ul>
			</div>
			
			<div class="info warp">
				<ul>
					<li class="info_1">
						<input type="checkbox"  name = "fav" onclick="checkTest2()"/>
					</li>
					<li class="info_2"> <img src="img/img1.jpg" width="80px"</li>
					<li class="info_3"><a>【京东超市】desha春秋季儿童休闲服</a> </li>
					<li class="info_4"><a>颜色:灰色+粉红</a></li>
					<li class="info_5">¥182.5</li>
					<li class="info_6">
						<button onclick="check(this,1)">-</button>
						<input type="text" value="1"/>
						<button class="bot" onclick="check(this,2)"> +</button>
					</li>
					<li class="info_7">¥182.5</li>
					<li class="info_8">
						<a>删除</a>
						<br />
						<a>移到我的关注</a>
					</li>
				</ul>
			</div>
		<!--商品详情展示结束-->
		
		
		<!--结算开始-->
			<div class="balance warp">
				<ul class="balance_ul1">
					<li>
						<input type="checkbox" name = "fav" onclick="checkTest1(this)"/>
						全选
					</li>
					<li><a>删除选择商品</a></li>
					<li><a>移到我的关注</a></li>
					<li><a>清除下柜商品</a></li>
				</ul>
				
				<ul class="balance_ul2">
					<li>已经选择<span>0</span>件商品</li>
					<li>总价 <span id="zongz">¥0</span></li>
					<li><button class="botd"> 去结算</button></li>
				</ul>
			</div>
		
		<!--结算结束-->
		
	</body>
</html>


image.png


最开始的选择变总价,js代码一样为什么总价还是不会变呢

JAVA 全系列/第四阶段:网页编程和设计/Javascript 语言(旧) 193楼

请教老师,为什么跟着代码走,数量还是没有统计起来?

html代码:

<!DOCTYPE html>
<html>
	<head>
		<link rel="stylesheet" type="text/css" href="css/reset.css"/>
		<link rel="stylesheet" type="text/css" href="css/jd.css"/> 
		<link rel="stylesheet" type="text/css" href="icon/iconfont.css"/>
		<meta charset="utf-8" />
		<title>购物车</title>
		<script src="js/jd.js" type="text/javascript"></script>
	</head>
	<body>
		<!-- 导航开始 -->
		<div class="nav">
			<div class="warp">
				<ul class="nav_ul1">
					<li><a href="#"><i class="iconfont">&#xe663;</i>京东首页</a></li>
					<li><a href="#">配送至:北京</a></li>
				</ul>
				<ul class="nav_ul2">
					<li><a href="#">洋洋宝贝</a><span>|</span></li>
					<li><a href="#">我的订单</a><span>|</span></li>
					<li><a href="#">我的京东</a><span>|</span></li>
					<li><a href="#">京东会员</a><span>|</span></li>
					<li><a href="#">企业采购</a><span>|</span></li>
					<li><a href="#">京东手机</a><span>|</span></li>
					<li><a href="#">关注京东</a><span>|</span></li>
					<li><a href="#">客服服务</a><span>|</span></li>
					<li><a href="#">网站导航</a></li>
				</ul>
			</div>
		</div>
		<!-- 导航结束 -->
		
		<!-- 搜索框开始 -->
		<div class="search">
			<div class="warp">
				<img src="img/logo.jpg" >
				<div class="search_div">
					<input type="text" class="search_text" />
					<input type="button" value="搜索" class="search_button" />
				</div>
			</div>
		</div>
		<!-- 搜索框结束 -->
		
		<!-- 标题开始 -->
		<div class="title warp">
			<h3>全部商品</h3>
			<div>
				<span>配送至:</span>
				<select>
					<!-- <option >--请选择--</option> -->
					<option >朝阳区</option>
					<option >昌平区</option>
					<option >大兴区</option>
					<option >顺义区</option>
					<option >城东区</option>
				</select>
			</div>
		</div>
		<!-- 标题结束 -->
		
		<!-- 显示菜单的开始 -->
		<div class="tips warp">
			<ul>
				<li>
					<input type="checkbox" name="cname" id="all" onclick="checkTest1(this),checkTest2()" />
					全选
				</li>
				<li>商品</li>
				<li>单价</li>
				<li>数量</li>
				<li>小计</li>
				<li>操作</li>
			</ul>
		</div>
		<!-- 显示菜单的结束 -->
		
		<!-- 商品的展示开始 -->
		<!-- 商品1 -->
		<div class="info warp">
			<ul>
				<li class="info_1">
					<input type="checkbox" name="cname" onclick="checkTest2()"/>
				</li>
				<li class="info_2">
					<img src="img/img1.jpg" width="80px" height="80px" >
				</li>
				<li class="info_3"><a>【京东超市】desha春秋季儿童休闲服</a></li>
				<li class="info_4"><a>颜色: 灰色+粉红</a></li>
				<li class="info_5">182.5</li>
				<li class="info_6">
					<button onclick="checkTest3(this,1),checkTest2()">-</button>
					<input type="text" value="1" />
					<button id="bot" onclick="checkTest3(this,2),checkTest2()">+</button>
				</li>
				<li class="info_7">¥182.5</li>
				<li class="info_8">
					<a>删除</a>
					<br>
					<a>移到我的关注</a>
				</li>
			</ul>
		</div>
		<!-- 商品2 -->
		<div class="info warp">
			<ul>
				<li class="info_1">
					<input type="checkbox" name="cname" onclick="checkTest2()"/>
				</li>
				<li class="info_2">
					<img src="img/img2.jpg" width="80px" height="80px" >
				</li>
				<li class="info_3"><a>【京东超市】宏碁电脑·第6代智能英特尔@</a></li>
				<li class="info_4"><a>颜色: 灰色+粉红</a></li>
				<li class="info_5">182.5</li>
				<li class="info_6">
					<button onclick="checkTest3(this,1),checkTest2()">-</button>
					<input type="text" value="1" />
					<button id="bot" onclick="checkTest3(this,2),checkTest2()">+</button>
				</li>
				<li class="info_7">¥158.9</li>
				<li class="info_8">
					<a>删除</a>
					<br>
					<a>移到我的关注</a>
				</li>
			</ul>
		</div>
		<!-- 商品3 -->
		<div class="info warp">
			<ul>
				<li class="info_1">
					<input type="checkbox" name="cname" onclick="checkTest2()"/>
				</li>
				<li class="info_2">
					<img src="img/img3.jpg" width="80px" height="80px" >
				</li>
				<li class="info_3"><a>【京东超市】好孩子·婴儿橄榄柔护洗衣液</a></li>
				<li class="info_4"><a>颜色: 灰色+粉红</a></li>
				<li class="info_5">182.5</li>
				<li class="info_6">
					<button onclick="checkTest3(this,1),checkTest2()">-</button>
					<input type="text" value="1" />
					<button id="bot" onclick="checkTest3(this,2),checkTest2()">+</button>
				</li>
				<li class="info_7">¥182.5</li>
				<li class="info_8">
					<a>删除</a>
					<br>
					<a>移到我的关注</a>
				</li>
			</ul>
		</div>
		<!-- 商品的展示结束 -->
		
		<!-- 结算开始 -->
		<div class="balance warp">
			 <ul class="balance_ul1">
			 	<li>
					<input type="checkbox" name="cname" onclick="checkTest1(this),checkTest2()" />
					全选
				</li>
			 	<li>删除选中商品</li>
			 	<li>移到我的关注</li>
			 	<li>清除下柜商品</li>
			 </ul>
			 <ul class="balance_ul2">
			 	<li>已选择<span id="sum">0</span>件商品</li>
			 	<li>总价<span id="all_price">0</span></li>
			 	<li>
					<button>去结算</button>
				</li>
			 </ul>
		</div>
		<!-- 结算结束 -->
		
	</body>
</html>
<!-- 
	JS的变量
		var
		alert(): 输出语句形式
	JS中的数据类型
		number(数字类型的数据): 例:1,1.2;
		String(字符串类型): 例:'你',"我们";
		boolean(布尔类型): 例: true,false;
		Object(对象类型): 例: new Date();
	JS中特殊数据类型
		undefined(未定义)
		NaN(不是一个数字) Not a Number的简称
		Null(空对象) 例如:  var a = null;
 
 -->

js代码:

// 获得所有多选框的对象

var cname = document.getElementsByName("cname");

//判断是否全选操作

function checkTest1(th){

var flag = th.checked;

for(var i in cname){

cname[i].checked = flag;

}

}

// 单选决定全选

function checkTest2(){

// 勾选状态

var flag = true;

for(var i = 1;i < cname.length - 1; i++){

if(!cname[i].checked){

flag = false;

break;

}

}

// 从下标0开始计算

cname[0].checked = flag;

cname[cname.length - 1].checked = flag;

/* --------------------------------------------------- */

// 价格是否统计

var total_price = 0;

// 统计是否有勾选对象

var num = 0;

// 统计商品的数量

var com_all_num = 0;

for( var i = 1; i < cname.length - 1;i++){

if(cname[i].checked){

num++;

// 获得ul的父节点

var par = cname[i].parentNode.parentNode;

// 获得指定ul里面的所有的li

var li = par.getElementsByTagName("li");

// 单个商品的价格

var odd_price = li[6].innerHTML.split("¥")[1];

// 获得所有商品的总价格

total_price += Number(odd_price);

var all_p = document.getElementById("all_price").innerText = total_price;

//获得商品的数量

var com_num = li[5].document.getElementsByTagName("input");

var sp_num = com_num[0].value; // 获得input里的数量值

com_all_num += Number(sp_num);

// 获得商品数量统计的对象

document.getElementById("sum").innerText = com_all_num;

}

}

if(num == 0){

document.getElementById("all_price").innerText = 0;

document.getElementById("sum").innerText = 0;

}

}



// 控制数量的增加和减少

function checkTest3(th,sig){

var pre;

if(sig == "1"){

// 获得下一个节点

pre = th.nextElementSibling;

if(Number(pre.value) > 0){

// 获得节点的value值

pre.value = Number(pre.value) - 1;

}

}else{

// 获得上一个节点

pre = th.previousElementSibling;

// 获得节点的value值

pre.value = Number(pre.value) + 1;

}

// 计算每一个商品总的价格

// 获得每一个商品的单价

var val = pre.parentNode.previousElementSibling.innerHTML;

// 计算总价格

var total = Number(val)*Number(pre.value);

// 把总价格赋值给指定对象

pre.parentNode.nextElementSibling.innerHTML = "¥"+total;

}

运行截图:

image.png

JAVA 全系列/第四阶段:网页编程和设计/Javascript 语言(旧) 194楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园
网站维护:百战汇智(北京)科技有限公司
京公网安备 11011402011233号    京ICP备18060230号-3    营业执照    经营许可证:京B2-20212637