diff --git "a/20\347\272\247\344\272\214\347\217\255\345\224\220\344\274\237\345\273\272/index.html" "b/20\347\272\247\344\272\214\347\217\255\345\224\220\344\274\237\345\273\272/index.html"
new file mode 100644
index 0000000000000000000000000000000000000000..51249e03007f8ae59072cb5c6c52680093926e48
--- /dev/null
+++ "b/20\347\272\247\344\272\214\347\217\255\345\224\220\344\274\237\345\273\272/index.html"
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+ Document
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/20\347\272\247\344\272\214\347\217\255\345\224\220\344\274\237\345\273\272/js/base.js" "b/20\347\272\247\344\272\214\347\217\255\345\224\220\344\274\237\345\273\272/js/base.js"
new file mode 100644
index 0000000000000000000000000000000000000000..ab0ad2cd1ab2edc2709d46cabff252f7ef11d35d
--- /dev/null
+++ "b/20\347\272\247\344\272\214\347\217\255\345\224\220\344\274\237\345\273\272/js/base.js"
@@ -0,0 +1,284 @@
+// 题目如下,请直接利用写好的方法,并且直接写在题目下方,要可以运行和输出,如第1题所示
+
+/*
+1、题目描述:
+找出元素 item 在给定数组 arr 中的位置
+输出描述:
+如果数组中存在 item,则返回元素在数组中的位置,否则返回 -1
+示例1
+输入
+[ 1, 2, 3, 4 ], 3
+输出
+2
+
+function indexOf(arr, item) {
+
+}
+*/
+console.log(`======= 第1题 =======`);
+function indexOf(arr, item) {
+ var index =-1;
+ for (let i = 0; i < arr.length; i++) {
+ if(arr[i]===item){
+ index=arr[i];
+ }
+
+ }
+ return index;
+}
+
+/*
+2、题目描述:
+计算给定数组 arr 中所有元素的总和
+输入描述:
+数组中的元素均为 Number 类型
+示例1
+输入
+
+[ 1, 2, 3, 4 ]
+输出
+
+10
+*/
+
+function sum(arr) {
+ return arr.reduce(function(x,y){
+ return x+y;
+ })
+}
+
+
+
+console.log(`======= 第2题 =======`);
+
+/*
+3、题目描述:
+返回给定数组arr中偶数
+输入描述:
+数组中的元素均为 Number 类型
+示例1
+输入
+
+[ 1, 2, 3, 4 ]
+输出
+
+[2,4]
+*/
+
+function filter(arr) {
+ return arr.filter(function(x){
+ return x%2===0
+ })
+}
+
+console.log(`======= 第3题 =======`);
+
+
+/*
+4、题目描述
+在数组 arr 末尾添加元素 item。不要直接修改数组 arr,结果返回新的数组
+示例1
+输入
+
+[1, 2, 3, 4], 10
+输出
+
+[1, 2, 3, 4, 10]
+*/
+
+function append(arr, item) {
+ var array = arr.slice();
+ array.push(item);
+ return array;
+}
+
+console.log(`======= 第4题 =======`);
+
+/*
+5、题目描述
+合并数组 arr1 和数组 arr2。不要直接修改数组 arr,结果返回新的数组
+示例1
+输入
+
+[1, 2, 3, 4], ['a', 'b', 'c', 1]
+输出
+
+[1, 2, 3, 4, 'a', 'b', 'c', 1]
+*/
+function concat(arr1, arr2) {
+ var array=arr1.concat(arr2);
+ return array;
+}
+
+console.log(`======= 第5题 =======`);
+
+/*
+6、题目描述
+为数组 arr 中的每个元素求二次方。不要直接修改数组 arr,结果返回新的数组
+示例1
+输入
+
+[1, 2, 3, 4]
+输出
+
+[1, 4, 9, 16]
+*/
+
+function square(arr) {
+ var array = arr.map(function(x){
+ return x*x;
+ })
+
+ return array;
+}
+
+console.log(`======= 第6题 =======`);
+
+/*
+7、题目描述
+为给定数组arr去重,不要直接修改数组arr,结果返回新的数组
+示例1
+输入
+
+[1, 1, 3, 4, 1]
+输出
+
+[1, 3, 4]
+*/
+
+
+function distinct(arr) {
+ var set = new Set();
+ for (let i = 0; i < arr.length; i++) {
+ set.add(arr[i]);
+ }
+ return set
+}
+
+console.log(`======= 第7题 =======`);
+
+/*
+8、题目描述
+定义一个计算圆面积的函数area_of_circle(),它有两个参数:
+
+r: 表示圆的半径;
+pi: 表示π的值,如果不传,则默认3.14
+*/
+
+function area_of_circle(r, pi) {
+ const PI = pi || 3.14
+ return PI * r*r ;
+
+}
+
+console.log(`======= 第8题 =======`);
+
+/*
+9、题目描述
+用jQuery编程实现获取选中复选框值的函数abc
+HTML结构如下:
+
+*/
+
+function abc(){
+ var state = [];
+ var len = $('[name=" aa "]').length;
+
+ state.push($('[name="aa"]')[0].value)
+
+ for (let i = 0; i < len; i++) {
+ state.push($('[name=" aa "]')[i].value);
+ }
+
+ return state;
+}
+console.log(abc());
+console.log(`======= 第9题 =======`);
+/*
+10、题目描述
+实现getOptionVal函数显示当前选项的文本和值
+
+
+
+*/
+function getOptionVal(){
+ $('[option]')
+}
+
+console.log(`======= 第10题 =======`);
+
+/*
+11、题目描述
+要求用jQuery完成: 点击id为btn的按钮(要求使用事件绑定)
+
+a.判断id为username的输入是否为空,如果为空,则弹出“用户名不能为空”的提示。
+
+b.判断id为password的输入字符串个数是否小于6位,如果小于6位,则弹出“你输入的密码长度不可以少于6位”的提示
+
+HTML结构如下:
+
+ 用户名:
+ 密 码:
+ 确认密码:
+
+
+*/
+function btnClick() {
+ $('#btnSubmit').click(function(){
+ if ($('#username').prop('value')==='') {
+ alert('用户名不能为空')
+ }
+ if ($('#password').prop('value').length<6) {
+ alert('你输入的密码长度不可以少于6位')
+ }
+ })
+}
+
+console.log(`======= 第11题 =======`);
+
+
+/*
+12、题目描述
+
+在下面的HTML文档中,编写函数test() ,实现如下功能:
+
+(1)当多行文本框中的字符数超过20个,只截取20个字符
+
+(2)在id为number的td中显示文本框的字符个数
+
+HTML结构如下:
+
+
+*/
+
+function test(){
+ if ($(':input')[0].innerHTML.length>20) {
+ $(':input')[0].innerHTML= $(':input')[0].innerHTML.substring(0,20)
+ }
+ $('#number')[0].innerText=$(':input')[0].innerHTML.length;
+}
+
+console.log(`======= 第12题 =======`);
\ No newline at end of file
diff --git "a/20\347\272\247\344\272\214\347\217\255\345\224\220\344\274\237\345\273\272/js/jquery-3.6.0.js" "b/20\347\272\247\344\272\214\347\217\255\345\224\220\344\274\237\345\273\272/js/jquery-3.6.0.js"
new file mode 100644
index 0000000000000000000000000000000000000000..fc6c299b73e792ef288e785c22393a5df9dded4b
--- /dev/null
+++ "b/20\347\272\247\344\272\214\347\217\255\345\224\220\344\274\237\345\273\272/js/jquery-3.6.0.js"
@@ -0,0 +1,10881 @@
+/*!
+ * jQuery JavaScript Library v3.6.0
+ * https://jquery.com/
+ *
+ * Includes Sizzle.js
+ * https://sizzlejs.com/
+ *
+ * Copyright OpenJS Foundation and other contributors
+ * Released under the MIT license
+ * https://jquery.org/license
+ *
+ * Date: 2021-03-02T17:08Z
+ */
+( function( global, factory ) {
+
+ "use strict";
+
+ if ( typeof module === "object" && typeof module.exports === "object" ) {
+
+ // For CommonJS and CommonJS-like environments where a proper `window`
+ // is present, execute the factory and get jQuery.
+ // For environments that do not have a `window` with a `document`
+ // (such as Node.js), expose a factory as module.exports.
+ // This accentuates the need for the creation of a real `window`.
+ // e.g. var jQuery = require("jquery")(window);
+ // See ticket #14549 for more info.
+ module.exports = global.document ?
+ factory( global, true ) :
+ function( w ) {
+ if ( !w.document ) {
+ throw new Error( "jQuery requires a window with a document" );
+ }
+ return factory( w );
+ };
+ } else {
+ factory( global );
+ }
+
+// Pass this if window is not defined yet
+} )( typeof window !== "undefined" ? window : this, function( window, noGlobal ) {
+
+// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1
+// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode
+// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common
+// enough that all such attempts are guarded in a try block.
+"use strict";
+
+var arr = [];
+
+var getProto = Object.getPrototypeOf;
+
+var slice = arr.slice;
+
+var flat = arr.flat ? function( array ) {
+ return arr.flat.call( array );
+} : function( array ) {
+ return arr.concat.apply( [], array );
+};
+
+
+var push = arr.push;
+
+var indexOf = arr.indexOf;
+
+var class2type = {};
+
+var toString = class2type.toString;
+
+var hasOwn = class2type.hasOwnProperty;
+
+var fnToString = hasOwn.toString;
+
+var ObjectFunctionString = fnToString.call( Object );
+
+var support = {};
+
+var isFunction = function isFunction( obj ) {
+
+ // Support: Chrome <=57, Firefox <=52
+ // In some browsers, typeof returns "function" for HTML