JS公共小方法之判断对象是否为domElement

Three.js入门指南:从环境搭建到3D场景渲染全流程解析 WebGL作为底层JavaScript API,允许在浏览器中直接利用GPU进行2D和3D图形渲染,但其原生API较为复杂。Three.js通过封装WebGL底层细节,提供了一套更高级、面向对象的API,显著降低了Web端3D开发的门槛。该技术实现了跨平台、免插件的3D图形展示,在交互式产品展示、沉浸式数据可视化等领域具有重要价值。本文聚焦于Three.js的下载方式选择、核心概念理解以及场景搭建实践,特别针对glb模型导入后显示异常等常见问题提供了解决方案,并深入探讨了NDC坐标在图形渲染管线中的作用。 阅读详情
function isDOMElement(obj) {
		  return !!(obj && typeof window !== 'undefined' && (obj === window || obj.nodeType));
		}

如何判断 DOM 节点是否存在(使用 jQuery) 在 JavaScript 中,通过使用 jQuery 库,我们可以方便地操作和管理网页上的 DOM 元素。如果我们需要检查特定的 DOM 节点是否存在,jQuery 提供了一些方法和技巧来完成这个任务。例如,如果要检查一个具有特定 ID 的元素是否存在,可以使用。请注意,在使用 jQuery 之前,我们需要在页面中引入 jQuery 库。与 0 进行比较,我们可以确定 DOM 节点是否存在,并在代码中采取相应的逻辑步骤。是 jQuery 对象的一个属性,它返回所选 DOM 节点的数量。'DOM 节点存在' 阅读详情

相关推荐

React+Three.js构建3D全景漫游:从原理到实践

WebGL作为现代浏览器中实现硬件加速3D图形的底层API,为网页端创建沉浸式视觉体验提供了技术基础。其核心原理是通过JavaScript调用GPU进行图形渲染,将复杂的3D场景转换为2D像素输出。Three.js作为最流行的WebGL封装库,通过场景(Scene)、相机(Camera)、渲染器(Renderer)等高层抽象,大幅降低了3D开发门槛。在工程实践中,结合React的声明式UI和组件化状态管理,能够高效构建可维护的交互式3D应用。这种技术组合在数字孪生、虚拟展厅、在线看房等场景中展现出巨大价值,

weixin_33971721的博客 268

JS判断一个对象是否为document.Element

以前不会用instanceof,今天在调用一个函数时传了一堆不想要的参数进去,程序还能跑... 当然报了1w+错误之后浏览器基本是卡死的状态了 回头看了两眼高程,重新复习了这个方法: 首先我们需要有一个Element对象: var oBox1 = document.querySelector(".box"), aBox = document.querySelec

github_38542747的博客 2225

jquery使用$(element).is()来判断获取的tagName

主要介绍了jquery使用$(element).is()来判断获取的tagName以及将取到标签用作到别的地方,需要的朋友可以参考下

在 JavaScript 中检查元素是否存在于 DOM 中

在 JavaScript 中检查元素是否存在于 DOM 中

six6de6的博客 4974

【AUCell打分】:评估一个基因集在单细胞转录组的每个细胞中特定的活性程度

AUCell使用曲线下面积来计算输入基因集的一个有意义的基因子集是否在每个细胞的表达基因中富集。AUC 分数在所有细胞中的分布允许探索特征的相对表达。由于评分方法是基于排名的,因此 AUCell 与基因表达单位和归一化程序无关。此外,由于细胞是单独评估的,因此可以很容易地应用于更大的数据集。

weixin_40695088的博客 1万+

内存优化--LOGBACK导致内存告警

一.故事背景 由于开辟新市场需要,开发了新的项部署在海外平台,其中最消耗内存的功能是消费kafka消息(最开始预计一天有1千万的量),部署完之后运行一段时间发现出现内存告警问题。 二.分析问题 出现内存告警,(新项目是低配置机器 2C4G * 2台)第一个念头是去查看堆空间设置的情况,看到jvm启动命令中堆空间都是直接指定大小,说明问题不是出在堆空间 -Xmx3g -Xms3g 先不管这些,去查看总的内存使用情况,发现总的内存空间使用将近有92% = 3.68G,那么这多出来使用的0.6

qq_33199919的博客 6052

如何判断一个js对象是否一个DOM对象

我们在写js代码时有时需要判断某个对象是不是DOM对象,然后再进行后续的操作,这里我给出一种兼容各大浏览器,同时又算是比较稳妥的一种方法。 要判断一个对象是否DOM对象,首先想到的无非就是它是否具有DOM对象的各种属性或特征,比如是否有nodeType属性,有tagName属性,等等。判断的特征越多,也就越可靠,因为毕竟我们自定义的js对象也可以有那些属性。还有其他方法吗? 在DOM Level2...

weixin_30352191的博客 483

逆变器专题(9)-基于dq坐标系的逆变器解耦控制建模与实时仿真分析

本文深入探讨了基于dq坐标系的逆变器解耦控制建模与实时仿真分析。通过生动的比喻和详细的数学推导,阐述了如何通过坐标变换和前馈补偿实现d轴与q轴的独立控制,从而提升系统动态性能与稳定性。文章还介绍了在MATLAB/Simulink中搭建仿真模型、分析动态响应与稳定性的方法,并展望了硬件在环(HIL)实时仿真的高级验证手段,为新能源并网与电机驱动领域的工程师提供了宝贵的实践指南。

gold的博客 547

javascript判断对象是否为domElement

我们在写js代码时有时需要判断某个对象是不是DOM对象,然后再进行后续的操作,这里我给出一种兼容各大浏览器,同时又算是比较稳妥的一种方法。 要判断一个对象是否DOM对象,首先想到的无非就是它是否具有DOM对象的各种属性或特征,比如是否有nodeType属性,有tagName属性,等等。判断的特征越多,也就越可靠,因为毕竟我们自定义的js对象也可以有那些属性。还有其他方法吗? 在DO...

weixin_30242907的博客 332

重访时间与覆盖分析的stk操作

1.打开stk 2.创建一个新的场景,命名为Test,选择地球为场景星球,若为金星,可在Central Body里选择Venus(金星自转周期慢,自转周期243天,卫星轨道变化不明显)(其中start stop时间可设置长一些) 3.插入一个AreaTarget或者place,以AreaTarget为例 选择Pattern,Add三个点(用法可见前面的博客,有时候编程的代码也可以帮助理解stk的操作) 4.插入Satellite,选择Orbit Wizard(若想设置卫星的六根数也可

weixin_42664107的博客 1万+

论文分享 - OctoMap八叉树建图原理

论文:OctoMap:An Efficient Probabilistic 3D Mapping Framework Based on Octrees。

一只废佐_的博客 2539

javascript Element类型

Element节点是Element类型的实例; Element节点的nodeName与tagName属性元素的标签名的大写;nodeValue为null; <!DOCTYPE html> <html> <body> <div id="123">123</div> </body> &...

wujunlei1595848的博客 947

2022中山大学计算机技术专硕考研初试、复试经验帖

个人简介 推荐几个我自己感觉对考研非常有帮助的小助手吧。可以帮助节省时间! 考研时间规划总览 初试篇 数学 英语 政治 408 复试篇 机试 笔试 面试 关于选导师 个人感言

zik的博客 1万+

JS基础(一)

1、JS脚本放置位置 页面内的JS脚本中,各种公共函数和变量应放在head标签之间,而将页面加载期间执行的代码、dom对象初始化以及与dom相关的全局引用赋值操作放在body标签之间,如果没有特殊要求...

weixin_39037804的博客 172

【网络协议】【TSN】精讲TSN工作原理!图解超赞超详细!!!

TSN有一个服务等级(class of service,CoS)的概念。对TSN网络而言,不同优先级的服务对应图3中的PCP码。3位PCP码定义了0(最低)~7(最高)这8个优先级,传输类型分别对应基础、最大努力、卓越努力、严苛应用、延时和抖动小于100 ms的视频、延时和抖动小于10 ms的音频、内部网络控制、网络控制。其会对网络场景进行不同的匹配,是后续调度、配置设计中会考虑到的数据流调度因素。

风云说通信 2632

YOLOv11改进策略【损失函数篇】| Shape-IoU:考虑边界框形状和尺度的更精确度量

本文记录的是改进YOLOv11的损失函数,将其替换成Shape-IoU。现有边界框回归方法通常考虑与之间的几何关系,通过边界框的相对位置和形状计算损失,但忽略了边界框本身的形状和尺度等固有属性对边界框回归的影响。为了弥补现有研究的不足,Shape-IoU提出了一种关注边界框本身形状和尺度的边界框回归方法。

Limiiiing的博客 4596

Vue 3 + Three.js 行政地图3D可视化核心原理

三维地理可视化不是简单将SVG转为3D模型,而是基于WGS84椭球体的数学建模过程。其本质涉及球面坐标转换、大圆航线插值与闭合曲面构建等空间几何原理,技术价值在于实现高精度地理语义交互与GPU友好型渲染调度。典型应用场景包括省级GDP热力球体、政务云地理态势大屏及区域经济引力模拟。本文深入解析Three.js与Vue 3响应式系统协同机制,重点突破GeoJSON到三维曲面的数学变形、相机状态与数据变更驱动的按需渲染,以及物理引擎耦合地理高度的浮起与飞行动画等关键技术环节。

tyygming的专栏 376

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

基于Three.js的建筑模型360°交互预览工具开发实践

在三维可视化领域,模型交互预览是连接设计与展示的关键技术。其核心原理是通过图形渲染引擎(如WebGL)将三维模型数据转换为屏幕图像,并利用虚拟摄像机系统模拟观察视角。这项技术的核心价值在于实现了“所见即所得”的即时反馈,极大提升了设计评审、方案演示和空间理解的效率。在建筑、游戏、室内设计及虚拟现实等应用场景中,用户可通过鼠标、键盘或触摸屏自由操控视角,进行环绕观察与内部漫游。本文以Three.js和OrbitControls为技术基础,详细解析了从模型导入、场景构建、摄像机控制到视角预设与路径录制的完整实现

weixin_33859844的博客 303

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

threejs

本文介绍了使用Three.js创建3D场景的基本步骤: 初始化三要素:创建场景、透视相机(设置视野、宽高比及截面距离)和WebGL渲染器,并将画布添加到页面中。 添加物体:通过BoxGeometry和MeshBasicMaterial创建立方体网格,并加入场景。 轨道控制器:引入OrbitControls实现交互控制,支持旋转、缩放及阻尼效果,需在渲染循环中更新。 辅助工具:添加坐标轴(AxesHelper)辅助调试。 响应式适配:监听窗口大小变化,动态调整渲染器和相机参数。 代码示例涵盖场景搭建、物体创建

weixin_43993776的博客 68

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

从体积预算到极致优化:打造5MB以内的3D作品集网站

在Web前端领域,3D交互体验正成为个人作品集与品牌展示页的差异化利器,但动辄上百MB的模型资源与纹理贴图,常让开发者陷入高性能与高质量的两难。体积预算(Performance Budget)作为一种前置的约束式优化策略,要求在项目启动之初就为模型、纹理、脚本和字体设定严格的资源配额,从根源上避免体积失控。通过程序化几何体、Draco压缩、KTX2纹理格式以及按需加载等手段,可以在有限的体积内实现接近游戏级的视觉表现。这种思路不仅适用于Three.js开发者构建3D作品集,也对任何追求轻量化、高性能、移动端

leonard61306500的专栏 290

物联网设备电量3D可视化:从硬件采集到WebGL实时显示的完整方案

在物联网和嵌入式开发中,实时监控设备状态是核心需求。传统方法依赖数值或简单图标,缺乏直观性。通过模拟数字转换器(ADC)采集电池电压,结合分压电路与软件滤波,可稳定估算电量。MQTT作为轻量级物联网协议,为设备与云端提供了高效、实时的数据通道,是实现状态同步的关键。在Web前端,利用Three.js等WebGL库,可将数据转化为动态的三维模型,实现高交互性的可视化。这种硬件数据采集、云端传输与三维前端渲染相结合的技术栈,为物联网设备的监控、调试与演示提供了强大支持,尤其适用于需要直观展示电池电量、温湿度等状

weixin_33794672的博客 468

Java基础

JAVA后端面试题<JAVA基础> 1.JDK和JRE有什么区别? JDK: JAVA Development Kit的简称,JAVA开发工具包,包括了JAVA的开发环境和运行环境(JRE)。 JRE: JAVA Runtime Environment的简称,JAVA运行环境。 两者关系: JDK包含JRE,同时还包含了JAVA源码编译器 JAVAC,还包含了JAVA程序调试和分析的.........

weixin_43766298的博客 760

DOM基本操作,查看元素节点,元素节点中的子节点,判断是否为元素节点,元素节点的(增,删,改),获取元素节点的属性

DOM基本操作,查看元素节点,元素节点中的子节点,判断是否为元素节点,元素节点的(增,删,改),获取元素节点的属性,body、documentElement、getElementById、getElementsByTagName、getElementsByClassName、getElementsByName、querySelector、querySelectorAll、

qq_43631129的博客 966

获取DOM元素和类型判断

setAttribute('属性名','属性值');通过name属性获取元素。1.querySelector('选择器');//获取一个类数组对象。1.textContent 只能获取元素或者后代元素的文本 保留代码格式。getAttribute('属性名') 获取元素属性。classList 获取元素类列表 class ='one two'3.innerText 获取元素以及后代元素文本内容 去除前后空格。replaceData() 替换文本内容。

l12345666777的博客 791

JS检查变量是否为dom元素

问题原因 在封装一个动画方法中我需要根据用户传入的参数去选择DOM元素,当用户传入字符串的时,方法内部进行选择DOM 。当用户传入对象时检查是否为DOM对象。 判断一个对象是否 DOM ,首先想到的是它是否具有 DOM 对象的各种属性或特征,比如是否有 nodeType 属性,有 tagName 属性,等等。判断的特征越多,也就越可靠,但毕竟我们自定义的 js 对象也可以有那些属性。 在 DOM Level2 标准中定义了一个 HTMLElement 对象,它规定所有的 DOM 对象都是 HTMLEleme

洲粥的博客 6301

javascript判断参数是否为dom元素

需求场景: 有时候需要判断参数传入是否为dom元素,或者需要区分参数是dom元素还是非dom元素,就需要做区分判断。举例:一个扩展方法MyMethod(domArg,optionsArg);参数可以选传入(假设内部均有默认处理),那对于判断参数domArg是否为dom元素就有意义了。 分析代码如下: function IsDom(obj){//由于在Chrome,Op...

weixin_30689307的博客 1064
上一篇: javascript 数组去重
下一篇: 清除浮动方法
LowKeySk
博客等级 码龄15年 21粉丝 29原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值