(四)javaweb 学习--javascript篇基础

javascript (数据类型,方法)

  1. javascript:客户端的一个脚本语言
  2. js是一门弱类型的语言(弱类型语言:变量的数据类型会根据赋的值的类型决定)
  3. 基本数据类型
    值类型(基本类型):字符串(String)、数字(Number)、布尔(Boolean)、空(Null)、未定义(Undefined)、Symbol。
    引用数据类型(对象类型):对象(Object)、数组(Array)、函数(Function),还有两个特殊的对象:正则(RegExp)和日期(Date)。
    4.定义一个函数 function+方法名([参数]){} 无返回值类型,参数无类型
<html>
    <head>
	<meta charset="GBK">
	    <script language="javascript">
		//javascipt中如何定义变量
		 //var str = "hello world";  
	
		 /*//引用数据类型
		 var person = new Object();
		 person.id = "51515";
		 person.name = "张三"; 
		 alert(person.id+"_"+person.name);
		 */

//定义一个函数 function+方法名([参数]){} 无返回值类型,参数无类型
         function hello(name){
		     return "hello to" + name;
		 }
         alert(hello("张三"));
		</script>
	</head>
	<body>
	</body>
</html>
<!--
1. javascript:客户端的一个脚本语言
2. js是一门弱类型的语言(弱类型语言:变量的数据类型会根据赋的值的类型决定)
3. 基本数据类型
值类型(基本类型):字符串(String)、数字(Number)、布尔(Boolean)、空(Null)、未定义(Undefined)、Symbol。
引用数据类型(对象类型):对象(Object)、数组(Array)、函数(Function),还有两个特殊的对象:正则(RegExp)和日期(Date)。
-->

javascrip使用

1.JavaScript 显示数据
JavaScript 可以通过不同的方式来输出数据:
使用 window.alert() 弹出警告框。
使用 document.write() 方法将内容写到 HTML 文档中。
使用 innerHTML 写入到 HTML 元素。
使用 console.log() 写入到浏览器的控制台。
2. 点击按钮触发事件

<body>
<button onclick="getElementById('demo').innerHTML=Date()">现在的时间是?</button>
<p id="demo"></p>
3. (1)JavaScript 访问某个 HTML 元素,您可以使用 `document.getElementById(id)` 方法 (2) document.getElementById("demo") 是使用 id 属性来查找 HTML 元素的 JavaScript 代码 。 (3)innerHTML = "段落已修改。" 是用于修改元素的 HTML 内容(innerHTML)的 JavaScript 代码。 4. 使用 document.write() 可以向文档写入内容。 如果在文档已完成加载后执行 document.write,整个 HTML 页面将被覆盖。 5. //window 当前窗口 //document 当前窗口的页面 //表示当前的页面加载完会实现一个匿名的函数 ## javascript代码
//window 当前窗口
//document 当前窗口的页面
//表示当前的页面加载完会实现一个匿名的函数
window.onload=function(){
	//当页面加载完成,我们需要绑定各种事件
	//根据id获取到表格
    var fruitTbl = document.getElementById("tb1_fruit");
	//获取表格中的所有行
	var rows = fruitTbl.rows;
	for(var i = 0;i<rows.length;i++){
		var tr = rows[i];
		//1.绑定鼠标悬浮设置背景颜色事件
		//showBGColor没有小括号,表示鼠标悬浮时,绑定此事件,而不是执行此事件
		tr.onmouseover = showBGColor;//(没有小括号)
		tr.onmouseout = clearBGColor;//(没有小括号)
		//获取tr这一行的所有单元格
		var cells = tr.cells;
		var priceID = cells[1];
		//2. 绑定鼠标悬浮在单价格手势的事件
		priceID.onmouseover = showHand;
	}
}
/*
当鼠标悬浮时,显示背景颜色
*/
function showBGColor(){
	//event:当前发生的事件
	//event.srcElemnt:事件源
	//alert(event.srcElement);
	//为什么是TD,因为事件传递
    //alert(event.srcElement.tagName);   //TD
	if(event && event.srcElement && event.srcElement.tagName == "TD"){
		var td = event.srcElement;
		//td.parentElement表示获取td的父元素->TR
		var tr = td.parentElement;
		//如果想通过js代码设置某节点的样式,则需加上.style
		tr.style.backgroundColor = "navy";

		//tr.cells 表示获取这个tr中的所有的单元格
		var tds = tr.cells;
		for(var i = 0;i<tds.length;i++){
			tds[i].style.color="while";
		}
	}
}
//当鼠标离开时,恢复原始样式
function clearBGColor(){
	if(event && event.srcElement && event.srcElement.tagName=="TD"){
     var td = event.srcElement;
	 var tr = td.parentElement;
	 //透明色
	 tr.style.backgroundColor="transparent";
	 var tds = tr.cells;
	 for(var i = 0;i<tds.length;i++){
		 tds[i].style.color="green";
	 }
	}
}

//当鼠标悬浮在单价单元格时,显示手势
function showHand(){
	if(event && event.srcElement && event.srcElement.tagName=="TD"){
	      var td = event.srcElement;
		  //cursor:光标  hand:手势形状
		  td.style.cursor="hand";
	}
}
/*--
1.JavaScript 显示数据
JavaScript 可以通过不同的方式来输出数据:
使用 window.alert() 弹出警告框。
使用 document.write() 方法将内容写到 HTML 文档中。
使用 innerHTML 写入到 HTML 元素。
使用 console.log() 写入到浏览器的控制台。
2. 点击按钮触发事件
<body>
<button οnclick="getElementById('demo').innerHTML=Date()">现在的时间是?</button>
<p id="demo"></p>
</body>
3. (1)JavaScript 访问某个 HTML 元素,您可以使用 document.getElementById(id) 方法
  (2) document.getElementById("demo") 是使用 id 属性来查找 HTML 元素的 JavaScript 代码 。
  (3)innerHTML = "段落已修改。" 是用于修改元素的 HTML 内容(innerHTML)的 JavaScript 代码。
4.	
使用 document.write() 可以向文档写入内容。
如果在文档已完成加载后执行 document.write,整个 HTML 页面将被覆盖。
5. //window 当前窗口
//document 当前窗口的页面
//表示当前的页面加载完会实现一个匿名的函数
*/

javascrip使用进阶

HTML代码

<html>
<head>
<meta charset="GBK">
<link rel="stylesheet" href="D:\JavaWeb学习\demo1.css">
<script type="text/javascript" src="D:\JavaWeb学习\javascriptdemo9.js">
     
</script>
</head>
<body>
	<div id="div_container">
      <div id="div_fruit_list">
	    <table id="tb1_fruit">
	      <tr>     <!--行-->
		       <th class="w20">名称</th>
			   <th class="w20">单价</th>
		       <th class="w20">数量</th>
		       <th class="w20">小计</th>
		       <th class="w20">操作</th>
		  </tr>

		  <tr>
                <td>苹果</td>
				<td>5</td>
			    <td>20</td>
                <td>100</td>
                <td><img src="D:\JavaWeb学习\girl4\all.jpg" width="40" height="40"/></td>		      
		  </tr>
		 <tr>
                <td>西瓜</td><input type='text' size='4'/>
				<td>3</td>
			    <td>20</td>
                <td>60</td>
                <td><img src="D:\JavaWeb学习\girl4\all.jpg" width="40" height="40"/></td>		      
      
		  </tr>
		  <tr>
                <td>菠萝</td>
				<td>6</td>
			    <td>20</td>
                <td>120</td>
                <td><img src="D:\JavaWeb学习\girl4\all.jpg" width="40" height="40"/></td>		      
		  </tr>
		  <tr>
                <td>榴莲</td>
				<td>50</td>
			    <td>3</td>
                <td>150</td>
                <td><img src="D:\JavaWeb学习\girl4\all.jpg" width="40" height="40"/></td>		      
		  </tr>
		  <tr>
                <td>总计</td>
				<td colspan="4">999</td>
			   	      
		  </tr>
	  </table>
	  </div>
	 </div>
</body>
</html>

CSS代码


       
  body{
		margin:0;
		padding:0;
	}
		/*全部都是相对布局*/
	div{
		position:relative;
		float:left;
	}
    #div_container{
		 width:80%;
		 height:100%;
		 border:0px solid blue;
		 margin-left:10%;
		 float:left;
		
		}
#tb1_fruit{
	 width:100%;
	 border:1px solid gray;
	 line-height:28px;
	 margin-top:120px;
	 margin-left:20%;
}
#tb1_fruit,#tb1_fruit tr,#tb1_fruit th,#tb1_fruit td{
     border:1px solid gray;
	 border-collapse:collapse;
	 text-align:center;
	 font-size:16px;
	 font-family:"黑体";
	 font-weight:lighter;
	 color:green;
}
#div_fruit_list{
	 width:100%;
}
.w20{
width:20%;
}
.delImg{
width:10px;
height:10px;
}

javascript代码

//window 当前窗口
//document 当前窗口的页面
//表示当前的页面加载完会实现一个匿名的函数
window.οnlοad=function(){
	//当页面加载完成,我们需要绑定各种事件
	//根据id获取到表格
    var fruitTbl = document.getElementById("tb1_fruit");
	//获取表格中的所有行
	var rows = fruitTbl.rows;
	for(var i = 1;i<rows.length-1;i++){
		var tr = rows[i];
		//1.绑定鼠标悬浮设置背景颜色事件
		//showBGColor没有小括号,表示鼠标悬浮时,绑定此事件,而不是执行此事件
		tr.onmouseover = showBGColor;//(没有小括号)
		tr.onmouseout = clearBGColor;//(没有小括号)
		//获取tr这一行的所有单元格
		var cells = tr.cells;
		var priceID = cells[1];
		//2. 绑定鼠标悬浮在单价格手势的事件
		priceID.onmouseover = showHand;
		//3.绑定鼠标点击单价单元格的事件,触发出现文本框,编辑修改单价
		priceID.οnclick=editPrice;
	}
}
/*
当鼠标悬浮时,显示背景颜色
*/
function showBGColor(){
	//event:当前发生的事件
	//event.srcElemnt:事件源
	//alert(event.srcElement);
	//为什么是TD,因为事件传递
    //alert(event.srcElement.tagName);   //TD
	if(event && event.srcElement && event.srcElement.tagName == "TD"){
		var td = event.srcElement;
		//td.parentElement表示获取td的父元素->TR
		var tr = td.parentElement;
		//如果想通过js代码设置某节点的样式,则需加上.style
		tr.style.backgroundColor = "navy";

		//tr.cells 表示获取这个tr中的所有的单元格
		var tds = tr.cells;
		for(var i = 0;i<tds.length;i++){
			tds[i].style.color="while";
		}
	}
}
//当鼠标离开时,恢复原始样式
function clearBGColor(){
	if(event && event.srcElement && event.srcElement.tagName=="TD"){
     var td = event.srcElement;
	 var tr = td.parentElement;
	 //透明色
	 tr.style.backgroundColor="transparent";
	 var tds = tr.cells;
	 for(var i = 0;i<tds.length;i++){
		 tds[i].style.color="green";
	 }
	}
}

//当鼠标悬浮在单价单元格时,显示手势
function showHand(){
	if(event && event.srcElement && event.srcElement.tagName=="TD"){
	      var td = event.srcElement;
		  //cursor:光标  hand:手势形状
		  td.style.cursor="hand";
	}
}
//当鼠标点击单价单元格时进行编辑修改
function editPrice(){
	if(event && event.srcElement && event.srcElement.tagName=="TD"){
		var priceID = event.srcElement;
		//nodeType==3表示为文本节点,ElementNode(元素节点):1。目的时判断当前priceID有子节点,而且第一个节点是文本节点,
		if(priceID.firstChild && priceID.firstChild.nodeType==3){
			//innerText 表示设置或者获取当前节点的内部文本
		var oldPrice = priceID.innerText;
		//innerHTML 表示设置当前的节点的内部HTML
		priceID.innerHTML="<input type='text' size='4'/>";
		//<td><input type='text' size='4'/></td>
		var input = priceID.firstChild;
		if(input.tagName=="INPUT"){
			input.value = oldPrice;
			//选中输入框内部的文本(自动选中输入框内的文本)
			input.select();
			//绑定输入框失去焦点事件,失去焦点,更新单价
			//onblur:表示失去焦点
			input.οnblur=updatePice;
		}
		}
	}
}
function updatePice(){
if(event && event.srcElement && event.srcElement.tagName=="INPUT"){
	var input = event.srcElement;
	//得到输入到输入框中输入的新的价格
	var newPrice = input.value;
	//拿到input的父节点td;
	var priceTD = input.parentElement;
	priceTD.innerText = newPrice;
    //更新当前的小计这一个格子的值
	//priceTD.parentElement td的父元素是tr
	updateXJ(priceTD.parentElement);

}
}
//更新指定行的小计
function updateXJ(tr){
	if(tr && tr.tagName=="TR"){
		var tds = tr.cells;
		var price= tds[1].innerText;
		var count = tds[2].innerText;
		//由于innerText获取到的是字符串,则通过parseInt()强转为int类型
		var xj = parseInt(price) * parseInt(count);
		tds[3].innerText = xj;

		//更新总计
		updateZJ();
	}
}
//更新总计
//rows 行
//cells 列
function updateZJ(){
	var fruitTbl = document.getElementById("tb1_fruit");
	//获取列
	var rows = fruitTbl.rows;
	var sum = 0;
	//0为表头,length-1为总计
	/*
	如何取到一列数,先找到所在的行,在该行的第几个即为所找值
	*/
	for(var i = 1;i<rows.length-1;i++){
		//取到某一行
		var tr = rows[i];
		//通过列,取到这一行,对应的列
		var xj = parseInt(tr.cells[3].innerText);
		sum = sum + xj;

	}
	rows[rows.length-1].cells[1].innerText = sum;
}
/*--
1.JavaScript 显示数据
JavaScript 可以通过不同的方式来输出数据:
使用 window.alert() 弹出警告框。
使用 document.write() 方法将内容写到 HTML 文档中。
使用 innerHTML 写入到 HTML 元素。
使用 console.log() 写入到浏览器的控制台。
2. 点击按钮触发事件
<body>
<button οnclick="getElementById('demo').innerHTML=Date()">现在的时间是?</button>
<p id="demo"></p>
</body>
3. (1)JavaScript 访问某个 HTML 元素,您可以使用 document.getElementById(id) 方法
  (2) document.getElementById("demo") 是使用 id 属性来查找 HTML 元素的 JavaScript 代码 。
  (3)innerHTML = "段落已修改。" 是用于修改元素的 HTML 内容(innerHTML)的 JavaScript 代码。
4.	
使用 document.write() 可以向文档写入内容。
如果在文档已完成加载后执行 document.write,整个 HTML 页面将被覆盖。
5. //window 当前窗口
//document 当前窗口的页面
//表示当前的页面加载完会实现一个匿名的函数
*/

javascrip使用进阶2

HTML代码

<html>
<head>
<meta charset="GBK">
<link rel="stylesheet" href="D:\JavaWeb学习\demo1.css">
<script type="text/javascript" src="D:\JavaWeb学习\javascriptdemo9.js">
     
</script>
</head>
<body>
	<div id="div_container">
      <div id="div_fruit_list">
	    <table id="tb1_fruit">
	      <tr>     <!--行-->
		       <th class="w20">名称</th>
			   <th class="w20">单价</th>
		       <th class="w20">数量</th>
		       <th class="w20">小计</th>
		       <th class="w20">操作</th>
		  </tr>

		  <tr>
                <td>苹果</td>
				<td>5</td>
			    <td>20</td>
                <td>100</td>
                <td><img src="D:\JavaWeb学习\girl4\all.jpg" width="40" height="40"/></td>		      
		  </tr>
		 <tr>
                <td>西瓜</td><input type='text' size='4'/>
				<td>3</td>
			    <td>20</td>
                <td>60</td>
                <td><img src="D:\JavaWeb学习\girl4\all.jpg" width="40" height="40"/></td>		      
      
		  </tr>
		  <tr>
                <td>菠萝</td>
				<td>6</td>
			    <td>20</td>
                <td>120</td>
                <td><img src="D:\JavaWeb学习\girl4\all.jpg" width="40" height="40"/></td>		      
		  </tr>
		  <tr>
                <td>榴莲</td>
				<td>50</td>
			    <td>3</td>
                <td>150</td>
                <td><img src="D:\JavaWeb学习\girl4\all.jpg" width="40" height="40"/></td>		      
		  </tr>
		  <tr>
                <td>总计</td>
				<td colspan="4">999</td>
			   	      
		  </tr>
	  </table>
	  <hr/>
	  <div id="add_fruit_div"></div>
	      <table>
		      <tr>
			     <td>名称:</td>
				 <td><input type="text" id='fname' /></td>
			  </tr>
			  <tr>
			     <td>单价:</td>
				 <td><input type="text" id='price' /></td>
			  </tr>
			  <tr>
			     <td>数量:</td>
				 <td><input type="text" id='fcount' /></td>
			  </tr>
			  <tr>
				 <td><input type="button" class="btn" value="添加"/></td>
				  <td><input type="button" class="btn" value="充填"/></td>
			  </tr>
		  </table>
	  </div>
	 </div>
</body>
</html>

javascrip代码

//window 当前窗口
//document 当前窗口的页面
//表示当前的页面加载完会实现一个匿名的函数
window.οnlοad=function(){
	//当页面加载完成,我们需要绑定各种事件
	//根据id获取到表格
    var fruitTbl = document.getElementById("tb1_fruit");
	//获取表格中的所有行
	var rows = fruitTbl.rows;
	for(var i = 1;i<rows.length-1;i++){
		var tr = rows[i];
		//1.绑定鼠标悬浮设置背景颜色事件
		//showBGColor没有小括号,表示鼠标悬浮时,绑定此事件,而不是执行此事件
		tr.onmouseover = showBGColor;//(没有小括号)
		tr.onmouseout = clearBGColor;//(没有小括号)
		//获取tr这一行的所有单元格
		var cells = tr.cells;
		var priceID = cells[1];
		//2. 绑定鼠标悬浮在单价格手势的事件
		priceID.onmouseover = showHand;
		//3.绑定鼠标点击单价单元格的事件,触发出现文本框,编辑修改单价
		priceID.οnclick=editPrice;

		//7.绑定删除小图标的点击事件
		var img = cells[4].firstChild;
		if(img && img.tagName=="IMG"){
			//绑定单击事件
			img.onclick = delFruit;
		}
        
       

	}
}

//删除
function delFruit(){
if(event && event.srcElement && event.srcElement.tagName == "IMG"){
    //alert表示弹出一个对话框,只有确定按钮
	//confirm表示弹出一个对话框,有确定和取消按钮。当点击确定,返回true,否则返回false;

    if(window.confirm("是否确认删除当前记录")){
	
	var img = event.srcElement;
	var tr = img.parentElement.parentElement;
	var fruitTbl = document.getElementById("tb1_fruit");
    fruitTbl.deleteRow(tr.rowIndex);
	updateZJ();
	}
}
}
/*
当鼠标悬浮时,显示背景颜色
*/
function showBGColor(){
	//event:当前发生的事件
	//event.srcElemnt:事件源
	//alert(event.srcElement);
	//为什么是TD,因为事件传递
    //alert(event.srcElement.tagName);   //TD
	if(event && event.srcElement && event.srcElement.tagName == "TD"){
		var td = event.srcElement;
		//td.parentElement表示获取td的父元素->TR
		var tr = td.parentElement;
		//如果想通过js代码设置某节点的样式,则需加上.style
		tr.style.backgroundColor = "navy";

		//tr.cells 表示获取这个tr中的所有的单元格
		var tds = tr.cells;
		for(var i = 0;i<tds.length;i++){
			tds[i].style.color="while";
		}
	}
}
//当鼠标离开时,恢复原始样式
function clearBGColor(){
	if(event && event.srcElement && event.srcElement.tagName=="TD"){
     var td = event.srcElement;
	 var tr = td.parentElement;
	 //透明色
	 tr.style.backgroundColor="transparent";
	 var tds = tr.cells;
	 for(var i = 0;i<tds.length;i++){
		 tds[i].style.color="green";
	 }
	}
}

//当鼠标悬浮在单价单元格时,显示手势
function showHand(){
	if(event && event.srcElement && event.srcElement.tagName=="TD"){
	      var td = event.srcElement;
		  //cursor:光标  hand:手势形状
		  td.style.cursor="hand";
	}
}
//当鼠标点击单价单元格时进行编辑修改
function editPrice(){
	if(event && event.srcElement && event.srcElement.tagName=="TD"){
		var priceID = event.srcElement;
		//nodeType==3表示为文本节点,ElementNode(元素节点):1。目的时判断当前priceID有子节点,而且第一个节点是文本节点,
		if(priceID.firstChild && priceID.firstChild.nodeType==3){
			//innerText 表示设置或者获取当前节点的内部文本
		var oldPrice = priceID.innerText;
		//innerHTML 表示设置当前的节点的内部HTML
		priceID.innerHTML="<input type='text' size='4'/>";
		//<td><input type='text' size='4'/></td>
		var input = priceID.firstChild;
		if(input.tagName=="INPUT"){
			input.value = oldPrice;
			//选中输入框内部的文本(自动选中输入框内的文本)
			input.select();
			//绑定输入框失去焦点事件,失去焦点,更新单价
			//onblur:表示失去焦点
			input.οnblur=updatePice;
		//8.在输入框上绑定键盘按下的事件,在此需要保证用户输入的是数字
        input.οnkeydοwn=ckInput;	    
		}
		}
	}
}
//检验键盘按下的值
function ckInput(){
	var kc = event.keyCode;
	//console:控制台  log:打印到控制台
	//0~9对应 48~57
	//backspace空格:8
	//enter:13
    //console.log(kc);
	if(!(( kc>=48 && kc<=57) || kc==8 || kc==13)){
		event.returnValue=false;
	}
	if(kc==13){
		event.srcElement.blur();
	}

}
function updatePice(){
if(event && event.srcElement && event.srcElement.tagName=="INPUT"){
	var input = event.srcElement;
	//得到输入到输入框中输入的新的价格
	var newPrice = input.value;
	//拿到input的父节点td;
	var priceTD = input.parentElement;
	priceTD.innerText = newPrice;
    //更新当前的小计这一个格子的值
	//priceTD.parentElement td的父元素是tr
	updateXJ(priceTD.parentElement);

}
}
//更新指定行的小计
function updateXJ(tr){
	if(tr && tr.tagName=="TR"){
		var tds = tr.cells;
		var price= tds[1].innerText;
		var count = tds[2].innerText;
		//由于innerText获取到的是字符串,则通过parseInt()强转为int类型
		var xj = parseInt(price) * parseInt(count);
		tds[3].innerText = xj;

		//更新总计
		updateZJ();
	}
}
//更新总计
//rows 行
//cells 列
function updateZJ(){
	var fruitTbl = document.getElementById("tb1_fruit");
	//获取列
	var rows = fruitTbl.rows;
	var sum = 0;
	//0为表头,length-1为总计
	/*
	如何取到一列数,先找到所在的行,在该行的第几个即为所找值
	*/
	for(var i = 1;i<rows.length-1;i++){
		//取到某一行
		var tr = rows[i];
		//通过列,取到这一行,对应的列
		var xj = parseInt(tr.cells[3].innerText);
		sum = sum + xj;

	}
	rows[rows.length-1].cells[1].innerText = sum;
}
/*--
1.JavaScript 显示数据
JavaScript 可以通过不同的方式来输出数据:
使用 window.alert() 弹出警告框。
使用 document.write() 方法将内容写到 HTML 文档中。
使用 innerHTML 写入到 HTML 元素。
使用 console.log() 写入到浏览器的控制台。
2. 点击按钮触发事件
<body>
<button οnclick="getElementById('demo').innerHTML=Date()">现在的时间是?</button>
<p id="demo"></p>
</body>
3. (1)JavaScript 访问某个 HTML 元素,您可以使用 document.getElementById(id) 方法
  (2) document.getElementById("demo") 是使用 id 属性来查找 HTML 元素的 JavaScript 代码 。
  (3)innerHTML = "段落已修改。" 是用于修改元素的 HTML 内容(innerHTML)的 JavaScript 代码。
4.	
使用 document.write() 可以向文档写入内容。
如果在文档已完成加载后执行 document.write,整个 HTML 页面将被覆盖。
5. //window 当前窗口 
//document 当前窗口的页面
//表示当前的页面加载完会实现一个匿名的函数
*/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值