会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 132464个问题
Python 全系列/第七阶段:网页编程基础/小米官网项目 12916楼

//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 语言(旧) 12917楼
Python 全系列/第一阶段:Python入门/函数和内存分析 12919楼
Python 全系列/第一阶段:Python入门/函数和内存分析 12920楼
Python 全系列/第七阶段:网页编程基础/HTML5新增元素 12921楼
Python 全系列/第二阶段:Python 深入与提高/GUI编程(隐藏) 12922楼
Python 全系列/第十阶段:Flask百战电商后台项目/Flask百战电商后台项目 12923楼

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

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 语言(旧) 12924楼
JAVA 全系列/第三阶段:数据库编程/MySQL数据库的使用 12926楼
Python 全系列/第二十二阶段:数据分析软件/(旧)SPSS 12927楼

package com.rongqi;

import jdk.dynalink.beans.StaticClass;

import java.util.Stack;

public class StackTest {
    public static void main(String[] args) {
        //实例化栈容器
        Stack<String> stack = new Stack<>();
        //将元素添加到栈容器
        stack.push("a");
        stack.push("b");
        stack.push("c");

        //判断栈容器中的元素是否为空
        System.out.println(stack.empty());
        //查看栈顶元素(不会删掉栈顶元素)
        System.out.println(stack.peek());
        //返回元素在容器中的位置

        System.out.println(stack.search("c"));
        //获取栈容器的元素(删掉栈顶元素)
        String p1 = stack.pop();
        System.out.println(p1);
        String p2 = stack.pop();
        System.out.println(p2);
        String p3 = stack.pop();
        System.out.println(p3);


        StackTest stackTest = new StackTest();
        stackTest.summmry();

    }




        public void summmry(){
            String str="...{.....[......(...)..].....}...(..)..[...]...{...}...";
            //实例化stack
            Stack<String> stack1 = new Stack<>();

            boolean flag = true;
            for (int i =0;i<str.length();i++){

                char c = str. charAt(i);


                if (c=='{'){
                    stack1.push("}");
                }
                if (c=='['){
                    stack1.push("]") ;
                }
                if (c=='('){
                    stack1.push(")");
                }
                if (c==')'||c==']'||c=='}'){
                    if (stack1.empty()){
                        flag = false;
                        break;
                    }
                    String x= stack1.pop();
                    if (x.charAt(0)!=c){
                        flag = false;
                        break;
                    }
                }



            }
            if (!stack1.empty()){
                flag = false;
            }
            System.out.println(flag);
        }






}
false
c
1
c
b
a
false

为什么打印的是false啊

JAVA 全系列/第二阶段:JAVA 基础深化和提高/容器(旧) 12928楼
Python 全系列/第一阶段:Python入门/函数和内存分析 12929楼

com.rongqijdk.dynalink.beans.StaticClassjava.util.StackStackTest {
    (String[] args) {
        Stack<String> stack = Stack<>()stack.push()stack.push()stack.push()System..println(stack.empty())System..println(stack.peek())System..println(stack.search())String p1 = stack.pop()System..println(p1)String p2 = stack.pop()System..println(p2)String p3 = stack.pop()System..println(p3)StackTest stackTest = StackTest()stackTest.summmry()}




        (){
            String str=Stack<String> stack1 = Stack<>()flag = (i =i<str.length()i++){

                c = str. charAt(i)(c==){
                    stack1.push()}
                (c==){
                    stack1.push() }
                (c==){
                    stack1.push()}
                (c==||c==||c==){
                    (stack1.empty()){
                        flag = }
                    String x= stack1.pop()(x.charAt()!=c){
                        flag = }
                }



            }
            (!stack1.empty()){
                flag = }
            System..println(flag)}






}
"C:\Program Files\Java\jdk-9.0.1\bin\java.exe" "-javaagent:D:\idea\源码和软件\软件\idea2021\IntelliJ IDEA Community Edition 2021.2.2\lib\idea_rt.jar=61966:D:\idea\源码和软件\软件\idea2021\IntelliJ IDEA Community Edition 2021.2.2\bin" -Dfile.encoding=UTF-8 -classpath D:\java\untitled\out\production\fanxing com.rongqi.StackTest
false
c
1
c
b
a
false

Process finished with exit code 0

为什么返回的是false

JAVA 全系列/第二阶段:JAVA 基础深化和提高/容器(旧) 12930楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

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