js应用-常用全选/全部选按钮应用

ztree树状实现全选反选 <form id="form" method="post"> <div class="D608_companySort"> <div class="D608_contentBox D608_companyBox"> <table class="D608_companyMessage"> ... 阅读详情
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script type="text/javascript">

    //需求: 若 #checkedAll_2 被选中, 则 name=items 的 checkbox 都被选中
    //若 #checkedAll_2 取消选中, 则 name=items 的 checkbox 都取消选中
    //若 name=items 的 checkbox 都被选中, 则 #checkedAll_2 的 checkbox 也被选中
    //若 name=items 的 checkbox 有一个没有被选中, 则 #checkedAll_2 取消选择.

    //提示: 事件需要加给  #checkedAll_2, 获取 name=items 的 checkbox 数组
    //判断是否被选中, 若被选择, 则 name=items 的 checkbox 都要被选择
    //若没有被选择, 则 name=items 的 checkbox 都要取消选择
    //根据是否存在 checked 属性来判断是否被选择, 可以使其 checked = true 被选择
    //checked = false 取消选择. 

    //还需要给每个  name=items 的 checkbox 加响应函数
    //判断  name=items 的 checkbox 是否都被选中: 选择的个数和总个数是否相等.
    //若都被选择: 则使  #checkedAll_2 被选择
    //若没有都被选择: 则使  #checkedAll_2 取消选择

    window.onload = function(){
        document.getElementById("checkedAll_2").onclick = function(){

            var flag = this.checked;
            var items = document.getElementsByName("items");

            for(var i = 0; i < items.length; i++){
                items[i].checked = flag;
            }

        }

        var items = document.getElementsByName("items");

        for(var i = 0; i < items.length; i++){
            items[i].onclick = function(){
                //记录有多少个 items 被选中了
                var number = 0;
                for(var j = 0; j < items.length; j++){
                    if(items[j].checked){
                        number++;
                    }
                }

                document.getElementById("checkedAll_2").checked = 
                    (items.length == number);
            }
        }

        document.getElementById("CheckedAll").onclick = function(){
            for(var i = 0; i < items.length; i++){
                items[i].checked = true;
            }
        }

        document.getElementById("CheckedNo").onclick = function(){
            for(var i = 0; i < items.length; i++){
                items[i].checked = false;
            }
        }

        document.getElementById("CheckedRev").onclick = function(){
            for(var i = 0; i < items.length; i++){
                items[i].checked = !items[i].checked;
            }
        }

        document.getElementById("send").onclick = function(){
            for(var i = 0; i < items.length; i++){
                if(items[i].checked){
                    alert(items[i].value);
                }
            }
        }
    }


</script>
</head>
<body>

    <form method="post" action="">
        你爱好的运动是?<input type="checkbox" id="checkedAll_2" />全选/全不选 

        <br /> <input
            type="checkbox" name="items" value="足球" />足球 <input type="checkbox"
            name="items" value="篮球" />篮球 <input type="checkbox" name="items"
            value="羽毛球" />羽毛球 <input type="checkbox" name="items" value="乒乓球" />乒乓球
        <br /> <input type="button" id="CheckedAll" value="全 选" /> <input
            type="button" id="CheckedNo" value="全不选" /> <input type="button"
            id="CheckedRev" value="反 选" /> <input type="button" id="send"
            value="提 交" />
    </form>

</body>
</html>

效果图:
这里写图片描述

这里写图片描述

Vue购物车全选、反选——单选全部选中、全选自动选中以及总价 1.模拟购物车数据 data() { return { //模拟购物车数据arr arr:[ { ischeck:false, //默认为false name:'篮球', price:98 }, { ischeck:false, //默认为false name:'足球', price:10 阅读详情

相关推荐

springboot的全选多选反选删除操作

1.在html页面id一栏中,要加入checkbox,并且命名好id <tr v-for="(v,key) in stu"> <td align="center"><input type="checkbox" name="id" id="id"></td> <td align="center"&...

KingEverything的博客 1730

JavaScript之checkbox选择

本文内容来自《15. 尚硅谷佟刚_JavaScript DOM编程实验之Select级联选择》视频教程,版权归期所有,仅作记录以备后查。效果如下: 源代码如下:<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title></title

toypipi 626

JavaScript实现全选和反选功能

在前端开发中,我们经常需要处理表单元素的选择操作。其中一项常见的需求是实现全选和反选功能,即通过点击一个按钮或复选框来全选或反选所有相关的表单元素。本文将介绍如何使用JavaScript来实现这些功能。

AvskBug的博客 188

Go调度循环深度解析:GMP模型、Work Stealing与抢占机制

在系统编程领域,轻量级并发单元与操作系统线程之间始终存在鸿沟。Go语言通过goroutine这一用户态执行单元,利用GMP模型将任务调度与内核线程解耦,使得数十万并发连接也能高效运转。调度循环作为Go运行时的心脏,负责在本地队列、全局队列之间寻找可运行任务,并通过work stealing窃取其他处理器上的任务,以保持负载均衡。当网络IO阻塞时,netpoller机制将等待事件交给操作系统事件驱动,线程得以继续服务其他goroutine,这正是高并发网络服务的性能基石。面对CPU密集型任务,基于信号的异步抢

weixin_34279246的博客 679

JavaScript全选全不选功能实现指南

htmltable {th, td {th {pre {简介:在网页开发中,实现“全选”和“全不选”功能能提升用户界面的交互性与操作便利性。通过HTML复选框与JavaScript结合使用,可以实现对数据列表或表格中项目的选择控制。文章将详细描述如何通过DOM操作、事件处理和逻辑控制来实现全选与全不选的功能,以及如何保证状态同步。

weixin_33610780的博客 1133

2025东方财富笔试考什么?cata能力测评攻略|答题技巧真题分享

4月10日-4月20日 专业笔试(行测+金融知识混合双打) 4月25日-5月10日 面试车轮战(AI面+半结构化+压力面) 5月15日起 Offer发放(谈薪必杀技:对标同花顺/雪球)这里不仅是金融极客的乐园,更是**“年薪30万管培生计划”**的主战场——你将用代码重构K线,用算法预判市场,成为资本市场的“数字先知”。东方财富,中国金融信息服务领域的“隐形冠军”,以**“金融数据+互联网”双擎驱动**,打造了覆盖证券、基金、期货的全生态交易平台。:• “我总坚持自己的方案”(HR:团队毒药!

Dgntsj的博客 3262

JavaScript拿到多个CheckBox的选中状态以及ajax的用法

JavaScript拿到多个CheckBox的选中状态以及ajax的用法

Alone 1167

交流异步机VVVF变频控制simulink/matlab仿真分析

VVVF,是Variable Voltage and Variable Frequency的缩写, 意为:可变电压、可变频率,也就是变频调速系统。 VVVF控制的逆变器连接电机,通过同时改变频率和电压,达到磁通恒定(可以用反电势/频率近似表征)和控制电机转速(和频率成正比)的目的,所以多应用在变频器中,属于工业自动化领域。

Ezekiel_Mok的博客 4213

js checkbox 的使用(取值、赋值、判断是否选中)

上面我们声明了一个name为ball的多选框,其中第一个value为basketball则如果我们选中,则提交的时候就会将该value值提交到服务器,我们设置第一个checkbox为checked,则默认选中第一项。(3)value:设置或返回checkbox的value属性的值,我们在提交form表单的时候value代表我们选中的那个checkbox的值。(2)name:设置返回checkbox的名称,也就是说要想我们选中的选项能一起通过form提交,则必须声明为name相同。使用JQuery获取。

qq_36158551的博客 6082

【华为OD机试真题 2025C卷】895、贪心歌手 | 机试真题+思路参考+代码解析 (C++、Java、Py、C语言、JS)

【华为OD机试真题 2025C卷】895、贪心歌手 | 机试真题+思路参考+代码解析 (C++、Java、Py、C语言、JS) 华为od机试,华为od机试真题,华为od机试E卷,华为odE卷,华为od机试真题E卷,华为OD,华为OD机试,华为OD机试真题,华为od机考,华为od机试D卷,华为od机试真题D卷,华为od手撕代码,华为od,华为od机试C卷,华为od e卷,华为2025e卷,od机试,2025E卷,华为OD机试E卷,什么是华为od,华为od介绍,全面了解华为od,2025华为od,如何备战华

KJ.JK 965

基于STM32L4XX、HAL库的Ra-01SC-P LoRa模块驱动程序设计

0x22) { // SX1276/SX1278版本号。// 发射功率(2-20)// 工作频率(Hz)// 编码率(5-8)

zhusl6688的博客 426

JavaScript操作checkbox复选框

JavaScript操作checkbox的方式和操作radio的方式相似,都是利用元素项的checked属性来完成。先获取checkbox元素集合,遍历集合,对集合中的每一项做操作。 取值 <body> <p> <label for="hobby">Hobby: <input type="checkbox" name="hobby" va...

人生若只如初见的博客 1万+

SAP_MM/CO模块-超详细的CK11N/CK40N取值逻辑梳理(十几种业务场景,1.76W字)

本文主要讲述的是三个大的知识点,超详细,涉及到知识点比较多,并且串起来讲解,这也是我在网上搜不到相关资料才自己慢慢研究测试出来的,断断续续耗费了我一周多时间,相信只要你们认真看完,肯定会有所收获; 1、CK11N/CK40N成本发布功能中,系统前台的取数逻辑,涉及到多个采购信息记录、生产版本、货源清单、配额协议等对成本价发布的影响~~!! 2、CK11N与CK40N发布的成本价不一致的问题~~!! 3、如何处理外协加工物料的外协价与BOM组件成本取值不匹配的问题~~!!

风沙的博客 4093

Js实现全选反选按钮功能

Js实现全选反选按钮功能 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <input type="checkbox" name...

weixin_44657829的博客 1977

汽车电子RTOS--AUTOSAR OS

AUTOSAR OS(AUTomotive Open System ARchitecture Operating System)是AUTOSAR(汽车开放系统架构)标准中的一个重要组件,它是一个专门为汽车电子控制单元(ECU)设计的实时操作系统(RTOS)。AUTOSAR OS旨在提供一个标准化的软件平台,以促进不同供应商和汽车制造商之间的组件复用和协同开发,提高软件质量和降低成本。

MHD0815的博客 1800

在 ABAP Cloud 中玩转 CL_ABAP_PARALLEL 并行处理:从原理到实战

ABAP并行处理框架CL_ABAP_PARALLEL解析 本文系统介绍了SAP ABAP环境中实现并行处理的CL_ABAP_PARALLEL框架。该框架通过封装异步RFC和对话进程,为开发者提供了面向对象的API,显著提升大批量数据处理的效率。 文章首先分析了ABAP环境需要并行处理的原因:传统的串行处理在面对百万级数据时效率低下。然后详细介绍了CL_ABAP_PARALLEL的设计思路,它是一个"小型线程池"式的同步并行框架,适用于批量计算场景。此外,文章重点讲解了控制并行任务的关键参

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 342

js实现多选、全选、反选、取消选择(篇一)

就算全世界离开你,还有一个我来陪,我会永远站在你身边。 对于上次的多选和取消选择,我来把它给补充完整,包含全选和反选。 多选和取消选择 效果图如下: 代码如下: <template> <div class="app"> <div class="ul"> <div class="li" @click="checkFn(item)" :class="isActiveFn(item)?'active':''" v-for="(item.

纸飞机博客 8253

[ vulhub漏洞复现篇 ] Drupal XSS漏洞 (CVE-2019-6341)

[ vulhub漏洞复现篇 ] Drupal XSS漏洞 (CVE-2019-6341) Drupal是使用PHP语言编写的开源内容管理框架(CMF),它由内容管理系统(CMS)和PHP开发框架(Framework)共同构成,在GPL2.0及更新协议下发布。Drupal在某些情况下,通过文件模块或者子系统上传恶意文件触发XSS漏洞。

qq_51577576的博客 2209

JavaScript--点击按钮实现复选框全选和反选功能

功能实现: 1、点击全选和反选按钮,实现复选框全选和部分选的功能 2、点击全选复选框,实现子复选框全选或全不选功能 完整代码: 学号 姓名 班级

博客 7532

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

简易jsp+servlet项目实现 批量删除,全选,反选

今天这个小项目的增删改查都弄好了,然后想做一下批量删除,全选以及反选的这些功能,然后就奋斗了几个小时搞了出来,以此文纪念一下下。 1.批量删除。那么我们先从批量删除开始讲起,在前面的查询时候我们就遍历出了数据库里面的数据在jsp页面上了。 如果想要实现批量删除的话,在这些表格中的每一行前面都有一个选择框checkbox,首先这个选择框不是我们一个一个的加上去,而是让他跟随着遍历数据时的那个...

weixin_42264823的博客 8860

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

JavaScript实现全选、全不选、反选功能

JavaScript实现全选、全不选、反选功能

whr 1045

深度学习工具包 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")

实现复选框全选和全不选的切换

实现复选框全选和全不选的切换

木木木华的博客 2493

jQuery全选反选按钮的实现

jQuery实现全选反选 css样式 <style> * { margin: 0; padding: 0; } .box { width: 200px; border: 10px solid #333; margin: 50px auto; ...

weixin_43309143的博客 1196

js练习(全选/反选/变色)

js练习(全选/反选/变色) <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>j...

qq_29035181的博客 321

PHP 全选/全部选

http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> http://www.w3.org/1999/xhtml"> 无标题文档 function check_all() {  var check_

炉火纯青 2096

dom应用(全选,反选问题)

//全选反选问题 //在变成的过程中,我们遇到很多的的checkbox等 需要悬着多个 //这里我们写一个例子 //html部分 //声明多个checkbox //将元素请相同的名称,方便于查找元素 <input type="checkbox" name="" id="allChecked">全选 <input type="checkbox" name="" id...

ai691227的博客 325
上一篇: 利用js实现Ajax操作(不通过数据库传数据)
下一篇: struts2 在Action中访问WEB资源
gamedev˚
博客等级 码龄12年 280粉丝 293原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值