JavaScript课堂笔记(下)

在Ubuntu上通过Wine完美运行企业微信的详细指南 本文提供了在Ubuntu系统上通过Wine兼容层安装和运行企业微信的详细教程。针对官方未提供Linux版本的痛点,指南推荐使用Ubuntu Kylin团队优化打包的Wine环境,通过简单的命令行步骤即可完成部署,并涵盖启动、中文输入法配置、文件管理等常见问题的解决方案,帮助用户实现高效、稳定的办公沟通。 阅读详情

11 JavaScript之DOM模型

通过 HTML DOM,可访问 JavaScript HTML 文档的所有元素。
DOM:Document Object Model,文档对象模型。
当网页被加载时,浏览器会创建页面的文档对象模型。
HTML DOM 模型被构造为对象的树:
在这里插入图片描述
通过可编程的对象模型,JavaScript 获得了足够的能力来创建动态的 HTML。

  • JavaScript 能够改变页面中的所有 HTML 元素
  • JavaScript 能够改变页面中的所有 HTML 属性
  • JavaScript 能够改变页面中的所有 CSS 样式
  • JavaScript 能够对页面中的所有事件做出反应

11.1 document对象

当浏览器载入 HTML 文档, 它就会成为 Document 对象。
Document 对象是 HTML 文档的根节点。
Document 对象使我们可以从脚本中对 HTML 页面中的所有元素进行访问。
提示:Document 对象是 Window 对象的一部分,可通过 window.document 属性对其进行访问。

11.2 document对象常用方法

11.2.1 查找 HTML 元素常用方法

在这里插入图片描述

<script>
function myLoad(){
//页面加载完毕之后再去获取页面上的元素,否则获取不到
//根据ID 获取元素,只能获取到唯一元素(如果有重名的ID元素,获取到的是第一个元素)
var div=document.getElementById("myDiv");
console.log(div);
//根据指定的类样式的名称获取元素,返回集合
var list=document.getElementsByClassName("demo");
console.log("根据类样式的名称获取到的元素的集合长度是:"+list.length);
for(var i=0;i<list.length;i++){
console.log(list[i]);
}
//根据指定HTML标签名称获取元素,返回集合
var list2=document.getElementsByTagName("li");
console.log("根据标签的名称获取到的元素的集合长度是:"+list2.length);
for(var i=0;i<list2.length;i++){
console.log(list2[i]);
}
//根据指定HTML元素的name属性获取元素,返回集合
var list3=document.getElementsByName("myli");
console.log("根据标签的名称属性获取到的元素的集合长度是:"+list3.length);
for(var i=0;i<list3.length;i++){
console.log(list3[i]);
}
}
</script>
<body onload="myLoad()">
<p  class="demo"></p>
<div id="myDiv" class="demo">
div
</div>
<ul class="demo">
<li>li11111111111</li>
<li name="myli">li11111111111</li>
<li>li11111111111</li>
<li name="myli">li11111111111</li>
</ul>
</body>

11.2.2 修改 HTML 内容和属性

  • 修改内容
    修改 HTML 内容的最简单的方法是使用 innerHTML 属性。
    修改 HTML 元素的内容的语法:
    document.getElementById(id).innerHTML=新的 HTML。
    PS: 绝对不要在文档(DOM)加载完成之后使用 document.write()。这会覆盖该文档。
  • 修改 HTML 属性
    修改 HTML 元素属性的语法:
    方式1:document.getElementById(id).attribute=新属性值
    方式2:document.getElementById(id).setAttribute(属性名,属性值);
<div id="mydiv">div</div>
var mydiv=document.getElementById("mydiv");
mydiv.innerHTML="新的div内容";
document.getElementById("myimg").src="x1.jpg";
<h1 style="color: green;" id="myh1">hello world</h1>
var h1=document.getElementById("myh1");
h1.setAttribute("class","bg");//设置属性
console.log(h1.getAttribute("class"));//获取属性class
console.log(h1.getAttribute("style"));//获取属性style

11.2.3 修改 HTML 元素的css

修改 HTML 元素css的语法:
document.getElementById(id).style.property=新样式

document.getElementById("myli").style.color="blue";
document.getElementById("myli").style.fontFamily="微软雅黑";
document.getElementById("myli").style.fontSize="24px";

11.3 HTML DOM 元素 (节点)

11.3.1 创建新的 HTML 元素

要创建新的 HTML 元素 (节点)需要先创建一个元素,然后在已存在的元素中添加它。

<button type="button" onclick="createNewP()">动态添加一个元素--
appendChild</button>
<button type="button" onclick="createNewP2()">动态添加一个元素--
insertBefore</button>
<div id="div1">
<p id="p1">这是段落1</p>
<p id="p2">这是段落2</p>
</div>
<script>
function createNewP(){
var newElementP=document.createElement("p");//创建一个新的段落元素
var text=document.createTextNode("这是我新创建的段落");//新创建的文本节点
//将文本的节点添加到新创建的元素中
newElementP.appendChild(text);
//获取一个页面已经存在的元素
var div=document.getElementById("div1");
//添加新创建的元素p到已经存在的元素div中
div.appendChild(newElementP);
}
function createNewP2(){
var newElementP=document.createElement("p");//创建一个新的段落元素
var text=document.createTextNode("这是我新创建的段落p2");//新创建的文本节点
//将文本的节点添加到新创建的元素中
newElementP.appendChild(text);
//获取一个页面已经存在的元素
var div=document.getElementById("div1");
var p1=document.getElementById("p1");
//添加新创建的元素p到已经存在的元素div中,指定插入到段落P1前面
div.insertBefore(newElementP,p1);
}
</script>

11.3.2 替换 HTML 元素 -replaceChild()

<div id="div1">
  <p id="p1">这是一个段落。</p>
  <p id="p2">这是另外一个段落。</p>
</div>
<button type="button" onclick="changeElemnt()">替换p1</button>
<script>
  function changeElemnt(){
var newElementP=document.createElement("p");//创建一个新的段落元素
var text=document.createTextNode("这是我新创建的段落p");//新创建的文本节点
//将文本的节点添加到新创建的元素中
newElementP.appendChild(text);
//获取要被替换的元素p1及其父元素div
var div=document.getElementById("div1");
var p1=document.getElementById("p1");
//将div中的元素p1替换为新创建的元素
div.replaceChild(newElementP,p1);
}
</script>

11.3.3 删除元素 -removeChild()

<div id="div1">
  <p id="p1">这是一个段落。</p>
  <p id="p2">这是另外一个段落。</p>
</div>
<button type="button" onclick="deleteElement()">删除p1-方式1</button>
<button type="button" onclick="deleteElement()">删除p1-方式2</button>
<script>
  function deleteElement(){
    var div=document.getElementById("div1");
    var p1=document.getElementById("p1");
    //从父元素div中删除子元素p1
    div.removeChild(p1);
 }
  function deleteElement2(){
    var p1=document.getElementById("p1");
    //p1.parentNode:作用就是获取要删除元素p1的父元素div
    p1.parentNode.removeChild(p1);
 }
</script>

12 表单验证

12.1表单验证意义与场景

1.降低服务器压力
拦截不合格的数据,避免直接提交到服务器,可以显著降低服务器开销
2.提升用户体验
早期的互联网,表单项都是非常多的,注册个账号,经常需要填写20+个字段。而其中有一个填写不正
确就要等待几十秒时间。如果有了表单验证,反馈是实时的,而且脚本还能把你定位到填写错误的具体
字段。现在虽然无刷新技术早已普及,但是只依赖服务端验证,还是会有几百毫秒的延迟,实际使用会
有一种很难受的粘滞感。

12.2 表单验证常用事件与属性

表单经常需要做一些非空验证、长度验证、合法性验证等。

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>表单验证</title>
<script>
function validateName(){
//所有的表单项元素都value属性
var name=document.getElementById("userName").value;
var msg=document.getElementById("nameMsg");
if(name==null || name ==""){
msg.innerHTML="用户名不能为空!";
msg.style.color="red";
return false;
} else if(name.length<6){
msg.innerHTML="用户名长度必须为大于6的!";
msg.style.color="red";
return false;
}
msg.innerHTML="用户名可用";
msg.style.color="green";
return true;
}
function validatePwd(){
var password1=document.getElementById("password1").value;
var msg=document.getElementById("pwdMsg1");
if(password1==null || password1 ==""){
msg.innerHTML="密码不能为空!";
msg.style.color="red";
return false;
} else if(password1.length<8){
msg.innerHTML="密码的长度必须为大于8的!";
msg.style.color="red";
return false;
}
msg.innerHTML="密码合法";
msg.style.color="green";
return true;
}
function confirmPwd(){
var pwd1=document.getElementById("password1").value;
var pwd2=document.getElementById("password2").value;
var msg=document.getElementById("pwdMsg2");
if(pwd1!=pwd2){
msg.innerHTML="两次输入的密码不一致!";
msg.style.color="red";
return false;
}
msg.innerHTML="两次输入的密码一致";
msg.style.color="green";
return true;
}
function validateGender(){
var gender=document.getElementById("gender").value;
if(gender==-1){
alert("性别为必选项!");
return false;
}
return true;
}
function register(){
return
validateName()&&validatePwd()&&confirmPwd()&&validateGender();
}
</script>
</head>
<body>
<h1>英雄会注册</h1>
<form action="提交.html" method="get" onsubmit="return register()">
*用户名:<input type="text" id="userName" placeholder="请输入用户名"
onblur="validateName()" />
<span id="nameMsg">用户名长度至少6位</span><br />
*密码:<input type="password" id="password1" placeholder="请输入密码"
onblur="validatePwd()"/>
<span id="pwdMsg1">密码长度至少8位</span><br />
*确认密码:<input type="password" id="password2" placeholder="请确认密
码" οnblur="confirmPwd()" />
<span id="pwdMsg2">确认密码与密码一致</span><br />
*性别:<select id="gender">
<option value="-1">请选择性别</option>
<option value="0">女</option>
<option value="1">男</option>
</select><br /><br />
<button type="submit">注册</button>
<button type="reset">重置</button>
</form>
</body>
</html>

14 JavaScript的 RegExp 对象-正则表达式

14.1 概念

RegExp:是正则表达式(regular expression)的简写。
正则表达式(英语:Regular Expression,在代码中常简写为regex、regexp或RE)使用单个字符串来
描述、匹配一系列符合某个句法规则的字符串搜索模式。搜索模式可用于文本搜索和文本替换。

14.2 语法

语法:
var reg=new RegExp(/正则表达式主体/,修饰符(可选));
或更简单的方法
var reg=/正则表达式主体/修饰符(可选);
案例:
var reg=new RegExp(/kaikeba/i);
var reg = /kaikeba/i; //此处定义了一个一个正则表达式。
kaikeba  是一个正则表达式主体 (用于检索)。
i  是一个修饰符 (搜索不区分大小写)。

14.2.1 修饰符

可以在全局搜索中不区分大小写:
在这里插入图片描述
14.2.2 正则表达式模式
方括号用于查找某个范围内的字符:
在这里插入图片描述
元字符是拥有特殊含义的字符:
在这里插入图片描述
量词:
在这里插入图片描述

14.2.3 正则表达式的方法test(str)

test() 方法用于检测一个字符串是否匹配某个模式,如果字符串中含有匹配的文本,则返回 true,否则
返回 false。

var reg = /kaikeba/i;
var res=reg.test("开课吧的汉语拼音为kaikeba");
console.log(res);//true
var reg = /^[a-zA-Z]+[\u4e00-\u9fa5]*[0-9]$/;
var str="a公司拼音为9";
var res=reg.test(str);
console.log(res);//true
console.log(reg.test("a你好239"));//false
45 - Android系统源码-crosvm 实战:基于 KVM 的 Rust 安全虚拟机监控器核心技术 摘要:crosvm 是 Google 开发的基于 KVM 的轻量级虚拟机监控器(VMM),采用 Rust 语言编写,专为 ChromeOS 和 Android 设计。其核心特点包括: 安全架构:通过 Rust 的内存安全特性和多进程隔离(每个设备运行在独立沙箱进程)大幅降低攻击面 性能优化:基于 KVM 的硬件虚拟化支持,结合异步 I/O (io_uring/epoll) 实现高效设备模拟 模块化设计:清晰的 trait 抽象层(Hypervisor/Vm/Vcpu)支持跨平台扩展 Android 集成 阅读详情

相关推荐

CentOS 7 常用命令大全

CentOS中Linux命令

m0_63075763的博客 2019

document.getElementById().innerHTML

innerHTML在JS是双向功能:获取对象的内容 或 向对象插入内容; 如:<div id="demo">这是内容</div> 我们可以通过 document.getElementById(‘demo’).innerHTML 来获取id为aa的对象的内嵌内容; 也可以对某对象插入内容, 如document.getElementById(‘demo’).innerHTML=‘这是被插入的内容’; 这样就能向id为abc的对象插入内容。 ...

qq_45330179的博客 1万+

无人机通信安全渗透测试:从信号拦截到GPS欺骗的完整攻防框架

在物联网和智能设备普及的背景下,无线通信安全成为关键基础设施防护的核心环节。其原理在于,通过软件定义无线电等设备对空中的射频信号进行捕获、分析与模拟,从而评估通信协议在加密、认证和防重放等方面的脆弱性。这项技术的价值在于,它能主动发现并修复系统设计缺陷,避免因信号被拦截或欺骗导致设备被劫持、数据泄露等重大安全事件。其应用场景广泛,涵盖消费电子、工业控制及关键基础设施等领域。本文聚焦于无人机这一典型移动物联网终端,深入探讨如何构建一套针对其通信链路的渗透测试方法论,其中涉及信号拦截、协议逆向等关键技术,旨在为

weixin_34128237的博客 393

document getElementById innerHTML

innerHTML在JS是双向功能:获取对象的内容 或 向对象插入内容; 如: 这是内容 ,我们可以通过 document.getElementById(‘demo’).innerHTML 来获取id为aa的对象的内嵌内容; 也可以对某对象插入内容,如 document.getElementById(‘demo’).innerHTML=‘这是被插入的内容’; 这样就能向id为abc的对象插入内容...

weixin_43726152的博客 7360

QGIS基于快鸟(QuickBird)影像统计小麦种植面积

​01数据情况 本次选用某地4月份快鸟(QuickBird)影像为例,使用QGIS演示提取小麦播种情况,并按照200米*200米分区计算种植面积的过程。 注:本文对应的操作视频作为今天第二篇推送同时发布,习惯看视频的朋友可以点击观看。 附数据压缩包: 链接:https://pan.baidu.com/s/1JVUS8uAOR61RxC1n9Or9_w 提取码:qgis 含快鸟影像QB_subset.tif和200*200米分区矢量图层200Mgrid.shp。 ...

QGISClass的博客 1980

FPGA赋能:从加权灰度均值到快速收敛的自动曝光实战

本文深入探讨了FPGA在工业视觉自动曝光算法中的应用,重点介绍了加权灰度均值法的优化实现与快速收敛策略。通过硬件友好的算法改造和流水线架构设计,FPGA方案能在1帧内完成曝光调整,显著提升处理速度和能效比,适用于复杂光照条件下的工业检测场景。

weixin_29306317的博客 83

Document获取元素并修改内容:getElementById()方法、value属性、innerHTML属性、innerText属性

Document 对象,当 HTML 文档加载到 Web 浏览器中时,它就变成了一个文档对象。文档对象是 HTML 文档的根节点。文档对象是窗口对象的属性。innerHTML 属性声明了元素含有的 HTML 文本,不包括元素本身的开始标记和结束标记。通过该属性可以为指定的 HTML 文本替换元素内容。innerText 属性与innerHTML 属性的功能类似,只是该属性只能声明元素包含的文本内容,即使指定的是 HTML 文本,它也会认为是普通文本而原样输出。

pan_junbiao的博客 6010

Cobalt Strike4.0安装包(内附中文版)

1.什么是 Cobalt Strike Cobalt Strike 是一个为对手模拟和红队行动而设计的平台,主要用于执行有目标的攻击和模拟高级威胁 者的后渗透行动。 Cobalt Strike已经不再使用MSF而是作为单独的平台使用,它分为客户端与服务端,服务端是一个,客户端可以有多个,可被团队进行分布式协团操作。集成了端口转发、扫描多模式端口Listener、Windows exe程序生成、W...

梦之序章的博客 2万+

JavaScript的 document.getElementById(‘id‘).innerHTML=““

终于搞出来了 document.getElementById(“id”) 通过页面中的标识来获取元素,括号中写入命名的id元素 document.getElementById(‘id’).innerHTML="" 中的innerHTML=共有两种方法

weixin_51855195的博客 2269

安卓集成华为HMS Scankit实现自定义扫码功能

实现扫码功能 使用的是集成华为扫描的SDK,UI界面借鉴的是谷歌官方的Zxing项目中的自定义view,两者结合实现。 先上效果图: 先在项目根级别(build.gradle)当中配置HMS Core SDK的Maven仓地址。 // 配置HMS Core SDK的Maven仓地址。 maven {url 'https://developer.huawei.com/repo/'} // 配置HMS Core SDK的Maven仓地址。 maven {url 'https://developer.huaw

qq_47625961的博客 5512

机器学习算法原理:详细介绍各种机器学习算法的原理、优缺点和适用场景

现在,我们将进入到机器学习的核心部分——算法原理。在本篇文章中,我们将详细探讨各种机器学习算法的原理、优缺点和适用场景。

a871923942的博客 2966

js基础-课堂笔记

JavaScript-课堂笔记 表单【重点】 <form name="名称" action="提交路径" method="提交方式get/post"> <!-- 任何表单项的数据,如果想要提交,就必须有name属性 --> 文本框:<input type="text" name="username" value="默认值"> 密码框:<input type="password" name="password" value="默认值"&

huanghai_fu的博客 528

【雷达成像】基于matlab SAR雷达成像仿真【含Matlab源码 3750期】

SAR雷达成像仿真 完整的代码,方可运行;可提供运行操作视频!适合小白!

订阅付费专栏Matlab(奶茶价版),可赠送奶茶价版付费专栏指定代码1份; 1085

js基础知识总结笔记,javascript课堂笔记

JavaScript是目前web开发中不可缺少的脚本语言,js不需要编译即可运行,运行在客户端,需要通过浏览器来解析执行JavaScript代码。语法function 函数名(形式参数){ 函数体}调用函数:函数名(实际参数);函数只有被调用后才会执行如果函数需要返回值、直接使用return 返回// 定义一个函数 : functionfunction demo1() { return 你好;// 调用函数 :如果函数需要传递参数、不需要指定参数的类型、直接使用变量即可。

wenangou的博客 150

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

JavaWeb 课堂笔记 —— 02 JavaScript

本系列为笔者学习JavaWeb的课堂笔记,视频资源为B站黑马程序员出品的《黑马程序员JavaWeb开发教程,实现javaweb企业开发全流程(涵盖Spring+MyBatis+SpringMVC+SpringBoot等)》,章节分布参考视频教程,为同样学习JavaWeb系列课程的同学们提供参考。

Celeste的博客 888

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

JS的课堂笔记

JS笔记 1、EAMA script是Javascript的标准规范。 2、ES是标准 JS是实现。 3、JS分为ES、 DOM(文档对象)、BOM(浏览器对象) 4、JS(解释型语言) 特点: 1)不用编译直接运行 2)JS类似于C语言 Java语言 3)是动态语言(可变量的值 可以任意改变) 4)基于原型的面向对象 5)运行较慢(劣势)(为什么? 回...

weixin_45598555的博客 255

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

JS课堂笔记

离开当前代码块,变量就失效了,使用var声明的变量支持全局作用域,使用let和const声明的变量支持块级作用域。(使用一对花括号括起来的代码称为一个代码块所谓块级作用域,就是指变量起作用的范围是当前代码块,使用var声明的变量支持全局作用域,使用let和const声明的变量支持块级作用域. -->console.log(Number.MAX_VALUE*2)//Infinity(无穷大)//需求:(1)让用户输入两个数字 (2)比较两个数字大小,并在页面显示最大的那个数字。

2301_81819662的博客 1397

javascript课堂笔记

初 js区分大小写 字母数字下划线 数字开头 分号必写 /n换行 js浮点运算不精确 . 方法名 逗号调用方法 双引号需在同一行,换行可以用+做字符串拼接 <a href="javascript:alert("注意冒号")>点击这里弹出js窗口</a> /耦合问题不推荐使用 数据类型 null 空object undefind 衍生自null,未赋值变量 number NaN 不是一个数字 类型转换 转为串 .toString() undefind null 报错  不改

tioner的博客 336

【黑马】JavaScript课堂笔记

本笔记非原创,来自博主学习黑马的JavaWeb的配套资料,分享给有需要的人,如若侵权麻烦联系删除。 今日内容 1. JavaScript基础 JavaScript: * 概念: 一门客户端脚本语言 * 运行在客户端浏览器中的。每一个浏览器都有JavaScript的解析引擎 * 脚本语言:不需要编译,直接就可以被浏览器解析执行了 * 功能: * 可以来增强用户和html页面的交互过程,可以...

VICI的博客 1103

2020年JavaScript课堂笔记

javaScript(基础) 1.JavaScript简介 javaScript是“弱类型”语言 功能: 可以来增强用户和html页面的交互过程,可以来控制html元素,让页面有一些动态的效果,增强用户的体验。 2. JavaScript语法 与HTML结合方式 内部js:定义<script>,标签体内容就是JavaScript代码 外部js:定义<script>通过...

qq_45873896的博客 251

课堂笔记---JavaScript简介

JavaScript简介 JavaScript是互联网上最流行的脚本语言,这门语言可用于HTML和web, 更可广泛用于服务器、PC、笔记本电脑、平板电脑和智能手机等设备. JavaScript 是脚本语言 JavaScript 是一种轻量级的编程语言。 JavaScript 是可插入HTML页面的编程代码。 JavaScript 插入HTMl 页面后,可有所有的现代浏览器执行 JavaScrip...

weixin_44538423的博客 400

JavaScript课堂笔记一

1、概述 1.1 什么是JavaScript? 1.1.1 概念 JavaScript 是脚本语言,是一种解释性脚本语言(代码不进行预编译) JavaScript 是一种轻量级的编程语言。 JavaScript 是可插入 HTML 页面的编程代码。 JavaScript 插入 HTML 页面后,可由所有的现代浏览器执行。 JavaScript 很容易入门。 1.1.2 作用 1、为网页添加各式各样的动态功能, 2、为用户提供更流畅美观的浏览效果。 通常JavaScript脚本是通过嵌入

woshinibabaang的博客 263

JavaScript课堂笔记

程序一词来自生活,通常指完成某些事务的一种既定方式和过程在日常生活中,可以将程序看成对一系列动作的执行过程的描述程序变量赋值基本数据类型类型转换运算符程序的三种结构是什么?分支中if的结构switch的结构switch能判断的类型有哪些?while和do—while循环都是用来解决循环次数不确定的场合问题。for循环结构比较紧凑,对已知数量的循环操作方便break和continue的区别是什么?就像一台榨汁机一样你不必去关心它怎么工作的,只需要把水果放入,按下功能键,

张晨光老师的播客 1450

JavaScript 变量 课堂笔记

2.变量 1.变量:变化的量 2.定义变量:变量需要先定义在使用 var 变量名; 变量名的命名规则: 1)变量名必须以字母、下划线、$开头 2)变量名可以包含数字、字母、下划线、$ 3)变量名区分大小写 4)不能使用关键字和保留字 3.变量的赋值(变量的初始化): 变量名=值; 4.读取变量中的数据(变量的取值...

新入菜鸟 415

JavaScript课堂笔记!

JavaScript是世界上最流行的脚本语言。属于wed语言, 试用与PC,笔记本电脑,平板电脑和移动电话。               JavaScript用法   <!DOCTYPEhtml>   <html>    <head>     <meta charset: “utf-8”>     <title><...

weixin_30381317的博客 176
上一篇: JavaScript课堂笔记(中)
下一篇: JavaScripty案例
githubbbb
博客等级 码龄7年 2粉丝 25原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值