04-javaWeb-jQuery

目录

jQuery

jquery中效果

案例1-弹出广告

选择器总结

案例2-隔行换色

属性和css操作总结

对属性的操作

对css操作

案例3-全选或者全不选

jQuery数据遍历、val设置、标签设置、元素创建

 案例4-省市联动

选择器——表单对象属性过滤选择器

案例5-左右移动

总结


jQuery

  • 技术:

        定时器
        jQuery

  • jquery和html的整合

        jquery是单独的js文件
                通过script标签的src属性导入即可

  • 获取一个jquery对象

        $("选择器")  或者 jQuery("选择器")

<script src="../js/jquery-1.11.0.min.js"></script>
<body>
	<input type="text" id="username" value="jack"/>
</body>
<script>
	//通过原生js
	//alert(document.getElementById("username").value)
	
	//通过jquery 获取jquery对象
	var $username=$("#username");
	//var $username=jQuery("#username");
	alert($username.val());
</script>

 

  • dom对象和jquery对象之间的转换

        dom对象===>jquery对象        
                $(dom对象)

	<script>
		//dom >>>>jquery   $(dom对象)
		//1.获取dom对象
		var obj=document.getElementById("username");
		//2.转化
		var $user=$(obj);
		alert($user.val());
		//alert($user.value);错误的
	</script>


        jquery对象===>dom对象
                方式1:
                        jquery对象[index]

	<script>		
		//jquery>>>>dom
		//1.获取jquery独享
		var $u=$("#username");
		//2.转换
		//方式1
		var obj = $u[0];
		alert(obj.value);
	</script>


                方式2:
                        jquery对象.get(index)

	<script>
        //jquery>>>>dom
		//1.获取jquery独享
		var $u=$("#username");
		//2.转换
		//方式2
		var obj=$u.get(0);
		alert(obj.value);
        </script>

 

  • 页面加载:

        js:
                window.οnlοad=function(){}//在一个页面中只能使用一次
        jquery 在一个页面中可以使用多次
                方式1:
                        $(function(){...})
                方式2:
                        $(document).ready(function(){...});

		<script src="../js/jquery-1.11.0.min.js"></script>
		<script type="text/javascript">
			onload=function(){
				alert(12);
			}
			
			/*onload=function(){
				alert(34);
			}*/
			
			$(function(){
				alert("abc");
			})
			
			$(function(){
				alert("ab1c");
			})
			
			$(function(){
				alert("ab3c");
			})
		</script>

 

  • 派发事件:

        $("选择器").click(function(){...});//去掉  on   οnclick=>click
        等价于 原生js中
                dom对象.οnclick=function(){....}

		<script type="text/javascript">
			$(function(){
				//派发事件
				$("#bId").click(function(){
					alert(123)
				});
			});
		</script>

 

  •         掌握事件:

                focus
                blur
                submit
                change
                click

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>常见事件</title>
		<style type="text/css">
			#e02{
				border: 1px solid #000000;
	  			height: 200px;
	 			width: 200px;
			}			
		</style>
		<script src="../js/jquery-1.11.0.min.js"></script>
		<script type="text/javascript">
			$(document).ready(function(){
				$("#e01")
				.blur(function(){
					$("#textMsg").html("文本框失去焦点:blur");
				})
				.focus(function(){
					$("#textMsg").html("文本框获得焦点:focus");
				})
				.keydown(function(){
					$("#textMsg").append("键盘按下:keydown");
				})
				.keypress(function(event){
					$("#textMsg").append("键盘按:keypress");
				})
				.keyup(function(){
					$("#textMsg").append("键盘弹起:keyup");
				});
				
				var i = 0;
				$("#e02").mouseover(function(){
					$("#divMsg").html("鼠标移上:mouseover");
				}).mousemove(function(){
					//$("#divMsg").html("鼠标移动:mousemove , " + i++ );
				}).mouseout(function(){
					$("#divMsg").html("鼠标移出:mouseout");
				}).mousedown(function(){
					$("#divMsg").html("鼠标按下:mousedown");
				}).mouseup(function(){
					$("#divMsg").html("鼠标弹起:mouseup");
				});
				
				$("#e03").click(function(){
					$("#buttonMsg").html("单击:click");
				}).dblclick(function(){
					$("#buttonMsg").html("双击:dblclick");
				});				
			});		
		</script>		
	</head>
	<body>
		<input id="e01" type="text" /><span id="textMsg"></span> <br/>
		<hr/>
		<div id="e02" ></div><span id="divMsg"></span> <br/>
		<hr/>
		<input id="e03" type="button" value="可以点击"/><span id="buttonMsg"></span> <br/>
	</body>
</html>

 

jquery中效果

  •         隐藏或展示

                show(毫秒数)

                hide(毫秒数)

                toggle(毫秒数) //切换

  •         滑入或滑出

                slideDown(毫秒数):向下滑入
                slideUp(毫秒数):向上滑出

  •         淡入或淡出

                fadeIn(int):淡入
                fadeOut(int):淡出

	<script src="../js/jquery-1.11.0.min.js"></script>
	<script type="text/javascript">
		$(function(){
			//藏b1div
			$("#b1").click(function(){
				//$("#b1Div").hide(1000);
				
				//$("#b1Div").hide();
				
				//切换
				$("#b1Div").toggle(1000);
			});
			
			
			//滑出/滑入b2Div
			$("#b2").click(function(){
				//$("#b2Div").slideUp(2000);
				
				$("#b2Div").slideToggle(1000);
			});
			
			//出/淡入b3Div
			$("#b3").click(function(){
				$("#b3Div").fadeOut(1000);
			});
		})
	</script>


<body>
	<input type="button" id="b1" value="显示/隐藏 b1Div" />
	<div id="b1Div"></div> <br/>
	<input type="button" id="b2" value="滑出/滑入b2Div"/>
	<div id="b2Div"></div> <br/>
	<input type="button" id="b3" value="淡出/淡入b3Div" />
	<div id="b3Div"></div>		
</body>

 

案例1-弹出广告

  • 步骤分析:

        1.页面加载成功之后$(function(){...}) 开始一个定时器 setTimeout();

        2.编写展示广告方法 

                获取div,然后调用效果方法
                设置另一个定时器 隐藏

        3.编写隐藏广告的方法

                获取div,然后调用效果方法

		<script src="../js/jquery-1.11.0.min.js"></script>
		<script>
			$(function(){
				//开启一个定时器 2秒之后展示div
				setTimeout(showAd,2000);
			});
			
			//编写展示的方法
			function showAd(){
				//获取div,调用效果
				//$("#ad").show(1000);
				//$("#ad").slideDown(1000);
				$("#ad").fadeIn(1000);
				//开启另一个隐藏的定时器
				setTimeout("hideAd()",3000);
			}
			
			//编写隐藏方法
			function hideAd(){
				//$("#ad").hide(1000);
				//$("#ad").slideUp(1000);
				$("#ad").fadeOut(1000);
			}
		</script>

		<div id="ad" style="width:100%;display: none;">
			<img src="../img/ad_.jpg" width="100%" />
		</div>

 

选择器总结

  •         基本选择器★

                $("#id值")  $(".class值")  $("标签名")  
                

                了解:$("*")  所有

                理解:获取多个选择器 用逗号隔开

                        $("#id值,.class值")

 <script type="text/javascript">
 	$(function(){
 		 //<input type="button" value="选择 id为 one 的元素." id="btn1"/>  
 		 $("#btn1").click(function(){
 		 	$("#one").css("background-color","#ff0");
 		 });
		//<input type="button" value="选择 class 为 mini 的所有元素." id="btn2"/>
		$("#btn2").click(function(){
			$(".mini").css("background-color","#ff0");
		});
		 // <input type="button" value="选择 元素名是 div 的所有元素." id="btn3"/>
		 $("#btn3").click(function(){
			$("div").css("background-color","#ff0");
		});
		 // <input type="button" value="选择 所有的元素." id="btn4"/>
		 $("#btn4").click(function(){
			$("*").css("background-color","#ff0");
		});
		 //<input type="button" value="选择 所有的span元素和id为two的元素." id="btn5"/>
		 $("#btn5").click(function(){
			$("span,#two").css("background-color","#ff0");
		});
 	})
 </script>


 

  •         层次选择器 ★

                a b:a的所有b后代
                a>b:a的所有b孩子
                a+b:a的下一个兄弟(大弟弟)
                a~b:a的所有弟弟

 <script type="text/javascript">
 	$(function(){
// 		<input type="button" value="选择 body内的所有div元素." id="btn1"/>
		$("#btn1").click(function(){
			$("body div").css("background-color","#f0f");
		});
//		<input type="button" value="在body内,选择子元素是div的。" id="btn2"/>
		$("#btn2").click(function(){
			$("body>div").css("background-color","#f0f");
		});
//		<input type="button" value="选择 id为one 的下一个div元素." id="btn3"/>
		$("#btn3").click(function(){
			$("#one+div").css("background-color","#f0f");
		});
//		<input type="button" value="选择 id为two的元素后面的所有div兄弟元素." id="btn4"/>
		$("#btn4").click(function(){
			$("#two~div").css("background-color","#f0f");
		});
 	})
 </script>

 

  •         基本过滤选择器:★

                :frist 第一个——div:first
                :last 最后一个
                :odd  索引奇数
                :even 索引偶数
                :eq(index) 指定索引
                :gt(index) >
                :lt(index) <

 <script type="text/javascript">
 	$(function(){
// 		 <input type="button" value="选择第一个div元素." id="btn1"/>
		$("#btn1").click(function(){
			$("div:first").css("background-color","#0f0");
		});
//		  <input type="button" value="选择最后一个div元素." id="btn2"/>
		$("#btn2").click(function(){
			$("div:last").css("background-color","#0f0");
		});
//		  <input type="button" value="选择索引值为偶数 的div元素." id="btn3"/>
		$("#btn3").click(function(){
			$("div:even").css("background-color","#0f0");
		});
//		  <input type="button" value="选择索引值为奇数 的div元素." id="btn4"/>
		$("#btn4").click(function(){
			$("div:odd").css("background-color","#0f0");
		});
//		  <input type="button" value="选择索引值等于3的div元素." id="btn5"/>
		$("#btn5").click(function(){
			$("div:eq(3)").css("background-color","#0f0");
		});
//		  <input type="button" value="选择索引值大于3的div元素." id="btn6"/>
		$("#btn6").click(function(){
			$("div:gt(3)").css("background-color","#0f0");
		});
 	});
 </script>

 

  •         内容过滤:

                :has("选择器"):包含指定选择器的元素

 <script type="text/javascript">
 // <input type="button" value="选取含有class为mini元素 的div元素." id="btn1"/>
 	$(function(){
 		$("#btn1").click(function(){
 			$("div:has('.mini')").css("background-color","#0ff");
 		});
 	});
 </script>

 

  •         可见过滤:

                :hidden   在页面不展示元素 一般指 input type="hidden" 和 样式中display:none
                :visible 

 <script type="text/javascript">
 	$(function(){
// 		 <input type="button" value=" 选取所有可见的div元素"  id="b1"/>
		$("#b1").click(function(){
			$("div:visible").css("background-color","#f0f");
		});
//		<input type="button" value=" 选取所有不可见的div元素, 利用 jQuery 中的 show() 方法将它们显示出来"  id="b2"/>
 		$("#b2").click(function(){
			$("div:hidden").css("background-color","#f0f").show(1000);
		});
 	});
 </script>

 

  •         属性过滤器:★

                [属性名]
                [属性名="值"]   (!=   ^=    *=    $=)

 <script type="text/javascript">
 	$(function(){
// 		<input type="button" value="选取含有 属性title 的div元素." id="btn1"/>
		$("#btn1").click(function(){
			$("div[title]").css("background-color","#ff0");
		});
//		<input type="button" value="选取 属性title值等于“test”的div元素." id="btn2"/>
		$("#btn2").click(function(){
			$("div[title='test']").css("background-color","#ff0");
		});
 	});
 </script>

 

  •         表单过滤:

                :input  所有的表单子标签  input select textarea button
                input   只要input 标签

 <script type="text/javascript">
 	$(function(){
	//<input type="button" value="选取所有的表单子元素" id="btn1"/>
 		$("#btn1").click(function(){
 			//alert($("#form1 :input").size());  16
 			//alert($("#form1 :input").length);
 			alert($("#form1 input").size());//去掉不是input 的 个数
 		});
 	});
 </script>

 

案例2-隔行换色

  • 技术分析:

        1.页面加载成功
        2.获取所有的(大于0行的)奇数行 添加一个css
        3.获取所有的(大于0行的)偶数行 添加一个css

		<script>
			$(function(){
				/*$("tr:odd").css("background-color","#BCD68D");
				$("tr:even").css("background-color","#FFFFCC");*/
				
				/*$("tr:gt(0):odd").css("background-color","#BCD68D");
				$("tr:gt(0):even").css("background-color","#FFFFCC");*/
				
				$("tr:gt(0):odd").addClass("odd");
				$("tr:gt(0):even").addClass("even");
			})
		</script>

 

属性和css操作总结

对属性的操作

  •         attr():设置或者获取元素的属性

                        方式1:获取

                                attr("属性名称")

                        方式2:设置一个属性

                                attr("属性名称","值");

                        方式3:设置多个属性  json

                                attr({
                                        "属性1":"值1",
                                        "属性2":"值2"
                                })

                removeAttr("属性名称"):移除指定属性

  •         添加class属性的时候 

           1、attr("class","值");

           2、addClass("指定的样式值"); 相当于 attr("class","指定的样式值");
                 removeClass("指定的样式值");

对css操作

  •         操作元素的style属性

                css():获取或者设置css样式

                        方式1:获取        

                                css("属性名")

                        方式2:设置一个属性

                                css("属性名","值")

                        方式3:设置多个

                                css({
                                        "属性1":"值1",
                                        "属性2":"值2"
                                });

  •         获取元素的位置和尺寸

                offset()

                width()
                height()

	<script type="text/javascript">
		$(document).ready(function(){
		//1.1给username添加title属性
		var $username=$("[name='username']");
		$username.attr("title","姓名");
		
		//1.2获取username的title属性
		alert($username.attr("title"));
		
		//1.3给username添加value和class属性
		$username.attr({
			"value":"许多多",
			"class":"textClass"
		});
		
		//1.4删除username的class属性
		$username.removeAttr("class");
		
		//2.1给username添加一个名为textClass的样式
		$username.addClass("textClass");
		
		//2.2删除username的名为textClass的样式
		$username.removeClass("textClass");
		
		
		//4.1 给div添加边框样式
		var $div=$("div");
		$div.css("border","1px solid red");
		
		//4.2 获取div的表框样式
		//alert($div.css("border"));
		
		//4.3 给div添加多种样式
		$div.css({
			"width":"100px",
			"height":"100px",
			"background-color":"#ff0"
		});
		
		//5 获取div的位置
		alert($div.offset().left)
		
		//6 获取div的高和宽
		alert($div.width());
		});	
	</script>

 

案例3-全选或者全不选

  • 需求:

        就是将内容中复选框的选中状态和最上面的复选框状态保持一致

  • 步骤分析:

        1.确定事件 复选框的单击事件
        2.函数中
                a.获取当前复选框的选中状态  attr(获取不了checked属性)|prop
                b.获取所有的复选框修改他们的状态

  • 注意:

        若jquery版本>1.6           统一使用 prop操作元素的属性

 	<script type="text/javascript">
	 	$(function(){
	 		$("#selectAll").click(function(){
	 			//1.获取当前元素的选中状态 this在funcation中代表的是当前dom对象
	 			//alert(this.checked);

				//jQuery对象,获取属性
	 			//alert($(this).attr("checked"));//获取undefined
	 			//alert($(this).prop("checked"));
	 			
	 			//2.获取所有的复选框 让其状态和 当前元素的选中状态保持一致
	 			$(".itemSelect").prop("checked",$(this).prop("checked"));
	 		});
	 		
	 		
	 	});
	</script>

 

jQuery数据遍历、val设置、标签设置、元素创建

  •         遍历数组

                数组.each(function(){});——用 this 或者 参数 对属性进行操作

  <script type="text/javascript">
 	$(function(){
 		$("#b1").click(function(){
 			//1.获取文本隐藏
 			//alert($("input:hidden").size())

 			$("input:hidden").each(function(index,dom){
 				//function不带参数时,用this
 				//alert(this.value)
 				//alert($(this).val());

 				//function带有参数时,第一个为索引,第二个为dom对象
 				alert(index)//索引
 				alert(dom.value)
 			});
 		});
 </script>


                $.each(数组对象,function(){});

 <script> 
		$("#b2").click(function(){
 			$.each($("input:hidden"), function() {
 				alert($(this).val());
 			});
 		});
 	});
 </script>

 

        注意:

                eachfunction中可以加两个参数 index和dom
                        index是当前遍历的索引值
                        dom指代的是当前遍历的dom对象(开发中一般使用this即可)
 

  •         设置或者获取value属性

                jquery对象.val():获取
                jquery对象.val("...."):设置
 

	<script type="text/javascript">
		$(document).ready(function(){
		
		var $username=$("[name='username']");
		$username.prop("value","许木木");
		
		//3.1 获取 username的value属性的值
		//alert($username.val());
		
		//3.2 设置 username的默认值为"许多多"
		$username.val("许多多")
		
	</script>

 

  •         设置获取获取标签体的内容 

                html()
                text()
                
                xxxxx():获取标签体的内容
                xxxxx("....."):设置标签体的内容

	<script type="text/javascript">
		
		//3.3通过html获取div标签体的内容
		var $div=$("div");
		alert($div.html());
		
		//3.4通过html设置div标签体的内容
		$div.html("已满18,请带墨镜");
		
		//3.5通过text获取div标签体的内容
		alert($div.text());
			
		//3.6通过text设置div标签体的内容
		$div.text("已满18,请带墨镜");
			
	</script>

                        设置的区别:

                                html:会把字符串解析
                                text:只做为普通的字符串

                        获取的区别:

                                html:获取的html源码
                                text:获取只是页面展示的内容

​
	<script type="text/javascript">
		
		//3.7 两者设置值的区别
		$div.html("<a href='#'>我是一个连接</a>");//就是一个超链接
		$div.text("<a href='#'>我是一个连接</a>");//表括号里面的内容作为普通的字符串
		
		//3.8 两者获取值的区别
		alert($("#sp").html());//获取源码 外span<a href='#'>内超链</a></span>
		alert($("#sp").text());//获取只是展示的内容  外span内超链

	</script>

​

 

  •         创建一个元素: $("<标签></标签>")
	<script type="text/javascript">
		
		//创建一个元素: $("<标签></标签>")
		$div.html($("<a href='#'>").html("我"));
		});	
	</script>
  •         追加元素——文档操作

        内部插入

                a.append(c):将c插入到a的内部(标签体)后面——尾
                a.prepend(c):将c插入到a的内部的前面——头

	<script type="text/javascript">
	$(document).ready(function(){
		//0.获取两个元素
		var $city=$("#city");
		var $fk=$("#fk");
		
		//1.在city的后面内部追加 反恐——添加到末尾
		//$city.append($fk);
		
		//2.在city的前面内部插入 反恐——添加到头部
		$city.prepend($fk)		
	});
	</script>

    
                appendTo
                prependTo

        外部插入

                a.after(c):将c放到a的后面
                a.before(c):将c放到a的前面

	<script type="text/javascript">
		$(document).ready(function(){
			//获取两个元素
			var $city=$("#city");
			var $p2=$("#p2");
			
			//1.在 p2 的后面插入 city
			$p2.after($city);
			
			//2.在 p2 的前面插入 city
			$p2.before($city);		
		});
	</script>

              
                a.insertAfter(c)
                a.insertBefore(c)

        删除

                empty() 清空元素——原码中还有
                remove() 删除元素

	<script type="text/javascript">
		$(document).ready(function(){
		//1.清空ul
		//$("#city").empty();
		
		//2.移除天津 remove
		$("#tj").remove();					
		});
	</script>

 

 案例4-省市联动

  • 步骤分析:

        1.确定事件 省份的下拉选变化的时候  change

        2.编写函数

                a.获取当前省份的value值

                b.通过数组获取该省下的所有市 返回值:数组

                c.遍历数组,拼装成option元素 追加到市下拉选即可 append

                注意:每次改变的时候初始化市的值.

	<script type="text/javascript">
	 	$(function(){
	 		$("[name='pro']").change(function(){
	 			//1、获取市下拉选
	 			var $city=$("[name='city']");
	 			//2、先初始化 市选项
	 			$city.html($("<option>").html("-请选择-"));
				
	 			//3、省所在的数字下标
	 			var pro=$(this).val();
				
	 			//4、获取所有的市数组,转为jQuery对象
	 			var cities=$(arr[pro]);
	 			//alert(cities);
	 			
	 			//遍历数组,拼装成option 追加到市下拉选中
	 			cities.each(function(){
	 				$city.append("<option>"+this+"</option>");
	 				//$city.html("<option>"+this+"</option>"); //每次只写一个
	 			});
	 		});
	 	});
	</script>

 

 

选择器——表单对象属性过滤选择器

                :enabled   可用的
                :disabled  不可用
                :checked         选中的(针对于单选框和复选框的)
                :selected         选中的(针对于下拉选)

案例5-左右移动

  • 步骤分析:

        1.确定事件 单击事件
        2.编写函数:
                移动一个:
                        右边的下拉选追加一个 左边的选中的第一个
                移动多个:
                        左边选中的 追加到右边的下拉选中
                移动全部:
                        将左边的所有option追加到右边的下拉选中

	<script type="text/javascript">
		$(function(){
			//移动一个
			$("#toRight1").click(function(){
				//儿子选择器 ">"
				$("#left>option:selected:first").appendTo($("#right"));
			});
			
			//移动多个
			$("#toRight2").click(function(){
				//后代选择器 " "
				$("#right").append($("#left option:selected"));
			});
			
			//移动全部
			$("#toRight3").click(function(){
				$("#right").append($("#left option"));
			});
		})
	</script>

 

总结

js类库:
        对常见的方法和对象进行了封装,方便开发.
jquery和html的整合
        script标签的src属性导入即可
获取jquery对象
        $("选择器")  jQuery("选择器")
dom对象和jquery对象之间的转换
        dom>>>jquery        
                $(dom对象)
        jquery>>>dom
                方式1:
                        jquery对象[index]
                方式2:
                        jquery对象.get(index)
jquery中的选择器:
        基本选择器★
                $("#id值") $(".class值") $("标签名")  $("#one,#two,.mini")
        层次选择器★
                a b:后代
                a>b:孩子
                a+b:大弟弟
                a~b:弟弟们
                
        基本过滤选择器
                :frist :last
                :odd :even
                :eq(index) :gt|lt..
        内容过滤
                :has(选择器)
        可见性过滤
                :visible
                :hidden 指代是 input type=hidden  和 display:none
        表单的过滤
                :input
        属性选择器:
                [属性]
                [属性=值]
        表单对象属性过滤选择器
                :enabled   可用的
                :disabled  不可用
                :checked         选中的(针对于单选框和复选框的)
                ★:selected         选中的(针对于下拉选)


派发事件:
                jquery对象.事件(function(){.....});
                例如:
                        $("#btn1").click(function(){.....});


页面加载成功
        $(function(){
                ......
        })
        
        $(document).ready(function(){
               
        });

属性和css
        attr():设置或者获取属性(1.6版本之前)
                attr("属性名"):获取
                attr("属性名","值"):设置一个                
                attr({
                        "属性名":"值",
                        "属性名":"值" 
                })
                
        prop():和attr用法一致(1.6版本之后)
        
        (了解)addClass("存在的样式")
        
        removeAttr()
        (了解)removeClass()
        
 css():设置获取获取元素的样式
                css("属性"):获取
                css("属性","值"):设置
                css({
                        "":"",
                        "":"",
                        "":""
                }):设置多个
        
        width()
        heigh 

文档处理:
                内部插入(2组方法 任意掌握一组)
                外部插入(2组方法 任意掌握一组)
                删除(empty remove)

val、html、text

                val :设置或者获取values属性
                html:获取或者设置标签体内容

遍历数组
        方式1:
                jquery对象.each(function(){});
        方式1:
                $.each(jquery对象,function(){});

在jquery中创建元素
        $("<标签名>").prop(属性).html(内容)
 

 附件:相关代码、文档、学习视频https://download.csdn.net/download/qq_38247809/12569224

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值