头歌(Educoder)——Web前端课程设计——JavaScript答案

目录

JavaScript对象

第1关: 对象的创建

第2关: 属性的增删改查

第3关: 属性的检测和枚举

JavaScript数组

第1关: 数组的创建、读写和长度

第2关: 数组元素的增减

第3关: 数组的遍历和多维数组

第4关: 数组的常用方法

第5关: 数组的应用——内排序

JavaScript条件语句

第1关: if-else类型

第2关: switch类型

第3关: 综合练习

JavaScript循环语句

第1关: while类型

第2关: do while类型

第3关: for类型

第4关: for in类型

第5关: break和continue的区别——break

第6关: break和continue的区别——continue

JavaScript函数

第1关: 用函数语句定义函数

第2关: 用表达式定义函数

第3关: 函数的调用

第4关: 未定义的实参

第5关: 实参对象

第6关: 对象作为参数

第7关: 函数对象

JavaScript字符串

第1关: 查找字符串的位置

第2关: 求指定位置的字符

第3关: 字符串的截取

第4关: 大小写转换

第5关: 字符串的分割

JavaScript 正则表达式

第1关: 字符串字面量

第2关: 字符类

第3关: 重复

第4关: 选择

第5关: 分组

第6关: 引用

第7关: 匹配位置

第8关: 修饰符

第9关: 正则表达式的使用

 JavaScript 的JSON数据格式

第1关: JSON对象

第2关: JSON数组

第3关: JSON字符串

JavaScript 数学及日期函数

第1关: Math类

第2关: Date类

第3关: JavaScript错误

JavaScript 文档元素获取

第1关: 通过id获取文档元素

第2关: 通过类名获取文档元素

第3关: 通过标签名获取文档元素

第4关: html5中获取元素的方法一

第5关: html5中获取元素的方法二

第6关: 节点树上的操作

第7关: 属性值的获取

第8关: 属性值的设置

JavaScript 文档元素操作

第1关: 创建节点

第2关: 插入节点

第3关: 删除节点

第4关: 替换节点

第5关: 综合练习

JavaScript 事件处理

第1关: 注册事件处理程序

第2关: 文档加载事件

第3关: 鼠标事件

第4关: 键盘事件

第5关: 表单事件

第6关: 拖动事件

 第7关: 事件冒泡

JavaScript 浏览器对象模型

第1关: 定时器

第2关: 循环定时器

第3关: location对象

第4关: 对话框

第5关: 窗口

JavaScript 数据类型

JavaScript数据类型转换


JavaScript对象

第1关: 对象的创建

function Car(plate,owner) {
    this.plate = plate;
    this.owner = owner;
}
 
function Job() {};
Job.prototype.company = "myCompany";
Job.prototype.salary = 12000;
 
function mainJs(a,b,c,d,e) {
    //请在此处编写代码
	/********** Begin **********/
    var student = {name:a,gender:b};
    var myCar = new Car(c,d);
    var myJob =  new Job();
    myJob.company = e;
    /********** End **********/
    return student.name+student.gender+myCar.plate+myCar.owner+myJob.company;
}

第2关: 属性的增删改查

var store = {
	name:"Luma Restaurant",
	location:"No 22,Cot Road",
	accountant:"Vivian Xie",
	day1:3200,
	day2:3200,
	day3:3200,
	day4:3200,
	day5:3200,
	day6:3200,
	day7:3200,
	day8:3200,
	day9:3200,
	day10:3200
}
function reviseAttribute(reviser,date,attValue) {
	//Convert string to integer
	attValue = parseInt(attValue);
	//请在此处编写代码
	/********** Begin **********/
	store["day"+date] = attValue;
	store.accountant = reviser;
	/********** End **********/
	var totalSales =  store["day1"]+store["day2"]+store["day3"]+store["day4"]+store["day5"]+store["day6"]+store["day7"]+store["day8"]+store["day9"]+store["day10"];
    return totalSales+store.accountant;
}

第3关: 属性的检测和枚举

var orange = {
	weight:"200g",
	color:"orange",
	taste:"sour"
};
var car = {
	brand:"Jaguar",
	price:"$80000",
	model:"XFL"
}
 
function mainJs(a) {
	//请在此处编写代码
	/********** Begin **********/
	var result = "";
	if(a in car) {
		for(att in car) {
			result += att;
		}
	}
	else {
		for(att in orange) {
			result += att;
		}
	}
	return result;
	/********** End **********/
}

JavaScript数组

第1关: 数组的创建、读写和长度

var array1 = [1,2,3,"js",4,true,"hello"];
var array2 = [true,true,"java",2.1];
function mainJs(a) {
	//请在此处编写代码
	/********** Begin **********/
	a = parseInt(a);
	if(array1.length == a) {
		return array1[array1.length-1];
	}
	else {
		return array2[array2.length-1];
	}
	/********** End **********/
}

第2关: 数组元素的增减

var testArray = [12,"java","js","c","c++",24,36,"python","c#","css"];
function mainJs(a,b) {
	a = parseInt(a);
	b = parseInt(b);
	//请在此处编写代码
	/********** Begin **********/
	for(var i = 0;i < a;i++) {
		var rearMember = testArray.pop();
		testArray.unshift(rearMember);
	}
	return testArray[b];
	/********** End **********/
}

第3关: 数组的遍历和多维数组

var arr = [1,2,3,4,5,6,7,8,9,0,10,11,12,13,14,15,16,17,18,19,20,21,23,22];
function mainJs(a,b) {
	a = parseInt(a);
    b = parseInt(b);
    //请在此处编写代码
	/********** Begin **********/
	//新建二维数组,行长为a,列长为b
    var multiArr = new Array(a);
    for(var i = 0;i < a;i++) {
        multiArr[i] = new Array(b);
    }
	//依次将原数组的元素放置在二维数组的相应位置上
    var count = 0;
    for(var i = 0;i < a;i++) {//先行
        for(var j = 0;j < b;j++) {//后列
            multiArr[i][j] = arr[count++];
        }
    }
	//返回二维数组
    return multiArr;
	/********** End **********/
}

第4关: 数组的常用方法

function mainJs(myArray) {
	myArray = myArray.split(",");
	//请在此处编写代码
	/********** Begin **********/
	//新建用来存储字符串a位置的数组
	var indexsArrayOfStringa = new Array();
	//新建用来存储字符串b位置的数组
	var indexsArrayOfStringb = new Array();
	//求出参数字符串的长度
	var myArrayLength = myArray.length;
	var index = 0;
	//遍历获得字符串a的所有位置
	while(index < myArrayLength) {
		index = myArray.indexOf("a",index);
		if(index == -1) break;
		indexsArrayOfStringa.push(index++);
	}
	index = 0;
	//遍历获得字符串b的所有位置
	//这两个函数千万不要合在一起写!!!
	while(index < myArrayLength) {
		index = myArray.indexOf("b",index);
		if(index == -1) break;
		indexsArrayOfStringb.push(index++);
	}
	//返回两个数组的和数组
	return indexsArrayOfStringa.concat(indexsArrayOfStringb);
	/********** End **********/
}

第5关: 数组的应用——内排序

function mainJs(a) {
	var arr = a.split(",");
	for(var i = 0;i < arr.length;i++) {
    	arr[i] = parseInt(arr[i]);
	}
	//请在此处编写代码
	/********** Begin **********/
	var aLength = arr.length;//待排序数组的长度
	var temp;
	var max = arr[0];
	var maxIndex = 0;
	var indexArr = new Array();//记录最大元素位置的数组
	//进行选择排序
	for(var i = 0;i < aLength-1;i++) {
		for(var j = 1;j < aLength-i;j++) {
			if(arr[j] > max) {//更新最大元素及其索引
				max = arr[j];
				maxIndex = j;
			}
		}
		//记录最大元素所在的位置
		indexArr.push(maxIndex);
		//移动最大元素到索引最大处
		temp = arr[aLength-i-1];
		arr[aLength-i-1] = arr[maxIndex];
		arr[maxIndex] = temp;
		//将最大元素及位置归零
		var max = arr[0];
    	var maxIndex = 0;
	}
	return indexArr;
	/*********end*********/
}

JavaScript条件语句

第1关: if-else类型

function mainJs(a) {
	a = parseInt(a);
	//请在此处编写代码
	/********** Begin **********/
	if(a >= 60) {
		return "pass";
	}
	else {
		return "unpass";
	}
	/********** End **********/
}

第2关: switch类型

function mainJs(a) {
	a = parseInt(a);
	//请在此处编写代码
	/********** Begin **********/
	var name;
	switch(a) {
		case 82414:name = "Superior";
		break;
		case 59600:name = "Huron";
		break;
		case 58016:name = "Michigan";
		break;
		case 25744:name = "Erie";
		break;
		case 19554:name = "Ontario";
		break;
		default:name = "error";
		break;
	}
	return name;
	/********** End **********/
}

第3关: 综合练习

//判断一个年份是否为闰年
function judgeLeapYear(year) {
	//请在此处编写代码
	/********** Begin **********/
    var tt="年是闰年";
	var ff="年不是闰年";
	if(year%100==0){
		if(year%400==0){
			
			return year+tt;
		}else{
			
			return year+ff;
		}
 
	}else{
           if(year%4==0){
			   return  year+tt;
		   }else{
			   return year+ff;
		   }
	}  
	/********** End **********/
}
 
//对输入进行规范化处理
function normalizeInput(input) {
	/********** Begin **********/
	var output;
    switch(input){
	case "中共党员":
	case "党员":
	case "共产党员":output="中共党员";
		break;
		case "中共预备党员":
		case "预备党员":output="中共预备党员";
		break;
		case "团员":
	    case "共青团员":output="共青党员";
		break;
    case "大众":
	case "市民":
	case "人民": output="群众";
		break;
	default:  output="错误数据";
		break;	
	}
	return output;
    
	/********** End **********/
}
 
//判断苹果是否为优质品
function evaluateApple(weight,water) {
	/********** Begin **********/
    if(weight>=200 )
	{return "是优质品";}
	else{
		if(water>=0.7)
		{return "是优质品";}
		else
		{return "不是优质品";}
	}
	/********** End **********/
}

JavaScript循环语句

第1关: while类型

function mainJs(a) {
	a = parseInt(a);
	//请在此处编写代码
	/********** Begin **********/
	var sum = 0;
	var i = 2;
	while(i <= a) {
    	var j = 2;
    	while(j < i) {
        	if(i%j == 0) {//能被整除,不是质数
        		break;//不需要再判断
         	}
    		j ++;//除数加1,继续测试是不是质数
    	}
    	if(j == i) {//还是没有因数,证明这是一个质数
    		sum = sum+i;//加在结果里面
    	}
		i = i+1;//测试下一个数是不是质数
	}
	return sum;
	/********** End **********/
}

第2关: do while类型

function mainJs(a,b) {
    a = parseInt(a);
    b = parseInt(b);
	//请在此处编写代码
    /********** Begin **********/
    var sum = 0;//结果
    var i = a+1;//从a后面的第一个数开始累加
    while(i < b) {//直到b前面的第一个数
        sum += i;
        i++;//下一个数
    }
    return sum;//返回结果和
   /********** End **********/
}

第3关: for类型

function mainJs(a) {
	a = parseInt(a);
	//请在此处编写代码
	/********** Begin **********/
	var numLen = a.toString().length;//求出是个几位数
	var num = 1;
	var result = 0;
	for(var i = 0;i < numLen;i++) {
		var curNum = a.toString().substring(i,i+1);//取出其中的第i位数
		result = result+curNum*num;
		num = num*10;
	}
	return result;
	/********** End **********/
}

第4关: for in类型

var apple = {
    weight:"200克",
    level:"特级",
    locationProvince:"陕西省",
    locationCity:"榆林市"
}
 
function mainJs(a,b){
    apple[a]= b;
    //请在此处编写代码
	/********** Begin **********/
    var result = "";//结果字符串
    for(var x in apple) {//遍历所有的属性
        if(x.indexOf("location") == 0) {//以location开头的属性
            result += apple[x];//属性的值拼接
        }
    }
    return result;//返回结果
    /********** End **********/
}

第5关: break和continue的区别——break

function mainJs(a) {
	var arr = a.split(",");
	for(var k = 0,length = arr.length;k < length;k++) {
		arr[k] = parseInt(arr[k]);
	}
	//请在此处编写代码
	/********** Begin **********/
	for(var i = 0,length = arr.length;i < length;i++) {
		var cur = arr[i];//数组的第i个数
		for(var j = 2;j < cur;j++) {
			if(cur%j == 0) break;//不是质数,不需要再测试
		}
		if(j == cur) break;//已经找到了质数cur
	}
	return arr[i];
	/********** End **********/
}

第6关: break和continue的区别——continue

function mainJs(a,b) {
    a = a.split(",");
    for(var i = 0,length = a.length;i < length;i++) {
        a[i] = parseInt(a[i]);
    }
    var sum = 0;
    for(var i = 0,length = a.length;i < length;i++) {
		//请在此处编写代码
        /********** Begin **********/
        if(b > 0 && a[i] < 0) continue;//求正数的和,遇到负数跳过
        if(b < 0 && a[i] > 0) continue;//求负数的和,遇到正数跳过
        /********** End **********/
        sum += a[i];
    }
    return sum;
}

JavaScript函数

第1关: 用函数语句定义函数

//请在此处编写代码
/********** Begin **********/
function mainJs(a,b){
    return a+b;
}
/********** End **********/

第2关: 用表达式定义函数

function mainJs(a) {
    a = parseInt(a);
	//请在此处编写代码
	/********** Begin **********/
    var myFunc = function(b) {
        var first = (b-b%100)/100;//求出百位数
        var second = (b%100-b%100%10)/10;//求出十位上的数
        var third = b-first*100-second*10;//求出各位数
        return first+second+third;
    }
    /********** End **********/
    return myFunc(a);
}

第3关: 函数的调用

//求最大值的函数
function getMax(b,c) {
    return b>c?b:c;
}
 
//求最小值的函数
var getMin = function(b,c) {
    return b>c?c:b;
}
 
//对象中的求和函数
var myObject = {
    id:1,
    name:"function",
    myFunc:function(b,c) {
        return b+c;
    }
}
 
function mainJs(a,b,c) {
    a = parseInt(a);
    b = parseInt(b);
    c = parseInt(c);
    //请在此处编写代码
	/********** Begin **********/
    if(a == 1) {
        return getMax(b,c);
    } else if(a == 2) {
        return getMin(b,c);
    } else {
        return myObject.myFunc(b,c);
    }
    /********** End **********/
}

第4关: 未定义的实参

function mainJs(a,b,c,d) {
    //请在此处编写代码
	/********** Begin **********/
    if(a === undefined) {
        a = "green";
    }
    if(b === undefined) {
        b = "green";
    }
    if(c === undefined) {
        c = "red";
    }
    if(d === undefined) {
        d = "yellow";
    }
    return a+"-"+b+"-"+c+"-"+d;
   /********** End **********/
}

第5关: 实参对象

//请在此处编写代码
/********** Begin **********/
function getMax() {
	var aLength = arguments.length;
	var amax = 0;
	for(var i = 0;i < aLength;i++) {
		if(arguments[i] > amax) 
			amax = arguments[i];
	}
	return amax;
}
/********** End **********/
 
function mainJs(a) {
	a = parseInt(a);
	switch(a) {
		case 1:return getMax(23,21,56,34,89,34,32,11,66,3,9,55,123);
		case 2:return getMax(23,21,56,34,89,34,32);
		case 3:return getMax(23,21,56,34);
		case 4:return getMax(23,21,56,34,89,34,32,11,66,3,9,55,123,8888);
		case 5:return getMax();
		default:break;
	}
}

第6关: 对象作为参数

var park = {
    name:"Leaf Prak",
    location:"Fifth Avenue",
    todayTourists:4000
};
 
var computer = {
    name:"Levenon",
    price:"$800",
    memory:"8G"
};
 
var city = {
    name:"HangZhou",
    country:"Chine",
    population:9400000
}
 
function objectFunction(object) {
   //请在此处编写代码
	/********** Begin **********/
    var result = "";
    for(x in object) {
        result = result+x+":"+object[x]+",";
    }
    return result;
    /********** End **********/
}
 
function mainJs(a) {
    a = parseInt(a);
    switch(a) {
        case 1:return objectFunction(park);
        case 2:return objectFunction(computer);
        case 3:return objectFunction(city);
        default:break;
    }
}

第7关: 函数对象

//求数组中奇数元素的个数
function getOddNumber(a) {
    var result = 0;
    for(var i = 0;i < a.length;i++) {
        if(a[i]%2 != 0)
            result++;
    }
    return result;
}
 
//求数组中偶数元素的个数
function getEvenNumber(a) {
    var result = 0;
    for(var i = 0;i < a.length;i++) {
        if(a[i]%2 == 0)
            result++;
    }
    return result;
}
 
function getNumber(func,a) {
	//请在此处编写代码
    /*********Begin*********/
    return func(a);
    /*********End*********/
}
 
//测试接口
function mainJs(b,a) {
    a = a.split(",");
    var aLength = a.length;
    for(var i = 0;i < aLength;i++) {
        a[i] = parseInt(a[i]);
    }
    if(b == "getEvenNumber") {
        return getNumber(getEvenNumber,a);
    } else {
        return getNumber(getOddNumber,a);
    }
}

JavaScript字符串

第1关: 查找字符串的位置

function mainJs(a,b) {
    //请在此处编写代码
	/********** Begin **********/
    var startIndex = 0;
    var aLength = a.length;//a的长度
    var index = 0;
    var result = 0;
    while(startIndex < aLength) {//还没有匹配到末尾
        index = a.indexOf(b,startIndex);//本次匹配的位置
        if(index == -1) {//后面已经没有匹配的子串
            break;//提前结束整个过程
        }
        startIndex = index+1;//下次匹配的起始位置
        result += index;
    }
    return result;
	/*********End*********/
}

第2关: 求指定位置的字符

function mainJs(a) {
    //请在此处编写代码
	/********** Begin **********/
    var result = "";
    for(var i = 0;i < 6;i++) {//遍历,依次获取前六个数字
        result += a.charAt(i);
    }
    return result;
    /********** End **********/
}

第3关: 字符串的截取

function mainJs(a,b) {
    //请在此处编写代码
	/********** Begin **********/
    if(a.indexOf(b) == -1) {//没有杂质字符串直接返回
        return a;
    } else {
        var startIndex = a.indexOf(b);//杂质字符串起始处
        var endIndex = startIndex+b.length;//杂质字符串结束处
        return a.slice(0,startIndex)+a.slice(endIndex);
    }
    /*********End*********/
}

第4关: 大小写转换

function mainJs(a,b) {
	//请在此处编写代码
	/********** Begin **********/
    var str1 = b.toUpperCase();//把b转换为大写
    var aa = a.split(b);//以b为边界分割a为字符串数组
    a = aa.join(str1);//以转换后的b为边界重新连接字符串数组得到新的a
    return a;
	/*********End*********/
}

第5关: 字符串的分割

function mainJs(a) {
    //请在此处编写代码
	/********** Begin **********/
    var spaceArray = a.split(" ");//以space分割
    var commaArray = a.split(",");//以逗号分隔
    return spaceArray.length+commaArray.length-1;
    /*********End*********/
}

JavaScript 正则表达式

第1关: 字符串字面量

function mainJs(a) {
    a = a.replace(",","\n");
    //请在此处编写代码
	/********** Begin **********/
    var pattern = /js\n/;
    /********** End **********/
    return pattern.test(a).toString();
}

第2关: 字符类

function mainJs(a) {
    //请在此处编写代码
	/********** Begin **********/
    var pattern1 = /[a-zA-Z][0-9]/;
    var pattern2 = /A[^0-9]/;
    /********** End **********/
    return pattern1.test(a).toString()+","+pattern2.test(a).toString();
}

第3关: 重复

function mainJs(a) {
	//请在此处编写代码
	/********** Begin **********/
    var pattern1 = /\?+/;  
    var pattern2 = /\+{3,3}/;  
    var pattern3 = /\{\}{1,2}/;  
    var pattern4 = /\\{0,1}/;  
    
    
	/********** End **********/
    return pattern1.test(a).toString()+","+pattern2.test(a).toString()+","+pattern3.test(a).toString()+","+pattern4.test(a).toString();
}

第4关: 选择

function mainJs(a) {
    //请在此处编写代码
	/********** Begin **********/
    var pattern1 = /[0-9]{17}([0-9]|X)/;
    var pattern2 = /2(3|4)[0-9]{4}/;
    var pattern3 = /010|02[012345789]/;
    /********** End **********/
    return pattern1.test(a).toString()+","+pattern2.test(a).toString()+","+pattern3.test(a).toString();
}

第5关: 分组

function mainJs(a) {
    //请在此处编写代码
	/********** Begin **********/
    var pattern1 = /(\?\+){2,}/;
    var pattern2 = /\d(\?|\+)\d/;
    /********** End **********/
    return pattern1.test(a).toString()+","+pattern2.test(a).toString();
}

第6关: 引用

function mainJs(a) {
    //请在此处编写代码
	/********** Begin **********/
    var pattern1 = /([0-9]{3})[^0-9]\1/;
    var pattern2 = /[A-Z]([0-9])[A-Z]\1[A-Z]\1/;
    /********** End **********/
    return pattern1.test(a).toString()+","+pattern2.test(a).toString();
}

第7关: 匹配位置

function mainJs(a) {
     //请在此处编写代码
	/********** Begin **********/
     var pattern = /^js\b/;
    /********** End **********/
     return pattern.test(a).toString();
}

第8关: 修饰符

function mainJs(a) {
    //请在此处编写代码
	/********** Begin **********/
    var pattern = /\bshell\b/ig;
    /********** End **********/
    return a.match(pattern);
}

第9关: 正则表达式的使用

function mainJs(a) {
    //请在此处编写代码
	/********** Begin **********/
    var pattern = /[0-9]/g;
    return a.replace(pattern,"");
    /********** End **********/
}

 JavaScript 的JSON数据格式

第1关: JSON对象

function mainJs(a,b,c) {
    //请在此处编写代码
	/********** Begin **********/
    var JSONObject = {"key1":a,"key2":b,"key3":c};//定义JSON对象
    delete JSONObject.key3;//删除名字为key3的属性
	var result = "";
	for(var att in JSONObject) {//遍历剩余所有的属性
		result = result+JSONObject[att]+",";
	}
	return result.slice(0,-1);
   /********** End **********/
}

第2关: JSON数组

var myJson = {
	"category":"computer",
	"detail":"programming",
	"language":[
	"js","java","php","python","c"
	]
}
 
function mainJs(a) {
	a = parseInt(a);
    //请在此处编写代码
	/********** Begin **********/
    var result = "";
    for(var i = 0;i < a;i++) {
        result = result+myJson.language[i]+",";
    }
    return result.slice(0,-1);
   /********** End **********/
}

第3关: JSON字符串

var JSONString = '{"key1":"value1","key2":"value2"}';
function mainJs(a) {
    //请在此处编写代码
	/********** Begin **********/
	//JSON字符串转换为JSON对象
    var JSONObject = JSON.parse(JSONString);
	//修改key1属性的值为参数a
	JSONObject.key1 = a;
	//JSON对象转换为JSON字符串并返回
    return JSON.stringify(JSONObject);
   /********** End **********/
}

JavaScript 数学及日期函数

第1关: Math类

function mainJs(a) {
    a = parseInt(a);
    //请在此处编写代码
	/********** Begin **********/
    var b = Math.ceil(a);
    var c = Math.floor(a);
    var d = Math.sqrt(a);
    var e = Math.round(a);
    var f = Math.sin(a);
    return Math.max(b,c,d,e,f)+Math.min(b,c,d,e,f);
   /********** End **********/
}

第2关: Date类

function mainJs(a) {
    a = parseInt(a);
    var date = new Date(a);
    //请在此处编写代码
	/********** Begin **********/
    var year = date.getFullYear();
    var month = date.getMonth();
    var cal = date.getDate();
    var day = date.getDay();
    return year+","+month+","+cal+","+day;
   /********** End **********/
}

第3关: JavaScript错误

function mainJs(a) {
    //请在此处编写代码
	/********** Begin **********/
    try {
        if(a < 0)
            throw new Error("negative cannot be rooted");
        if(a == 0)
            throw new Error("zero cannot be numerator");
        return 1/(Math.sqrt(a));
    }catch(err) {
        return err.message;
    }
    /********** End **********/
}

JavaScript 文档元素获取

第1关: 通过id获取文档元素

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>get element by id</title>
</head>
<body>
    <a id="a1" src="https://www.google.com">Google</a>
    <p id="p1">this is a text</p>
    <script>
		<!-- 请在此处编写代码 -->
        <!---------Begin--------->
        var myElement = document.getElementById("a1");
        <!---------End--------->
        myElement.href="https://www.educoder.net";
    </script>
</body>
</html>

第2关: 通过类名获取文档元素

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>get element by name</title>
</head>
<body>
    <img src="" class="myName"/>
    <form class="myName" id="myForm"></form>
    <q class="myName">This is quote</q>
    <p class="myName">This is what you should get</p>
    <script>
		<!-- 请在此处编写代码 -->
        <!---------Begin--------->
        var myElement = document.getElementsByClassName("myName")[3];
        <!---------End--------->
        myElement.innerText="I changed the text";
    </script>
</body>
</html>

第3关: 通过标签名获取文档元素

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>get element by id</title>
 
</head>
<body>
    <div class="diva">
        <a href="https://www.educoder.net">EduCoder</a>
        <a href="https://www.facebook.com">FaceBook</a>
    </div>
    <div class="divb">
        <a href="https://www.twitter.com">Twitter</a>
        <form name="myForm"></form>
        <a href="https://www.nudt.edu.cn">NUDT</a>
    </div>
    <p id="pp">this is a text</p>
<script>
	<!-- 请在此处编写代码 -->
    <!---------Begin--------->
     var temp= document.getElementsByTagName("div")[1];
     var myElement = temp.getElementsByTagName("a")[1];
    <!---------End--------->
    myElement.innerText="nudt";
</script>
</body>
</html>

第4关: html5中获取元素的方法一

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
</head>
<body>
    <p>你需要获得的元素是我</p>
    <p>是楼上</p>
    <p>是楼上的楼上</p>
    <script>
		<!-- 请在此处编写代码 -->
        <!---------Begin--------->
        var pElement = document.querySelector("p");
        <!---------End--------->
        console.log(pElement);
    </script>
</body>
</html>

第5关: html5中获取元素的方法二

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
</head>
<body>
    <p>你需要获得的元素是我</p>
    <p>包括我</p>
    <p>还有我</p>
    <script>
		<!-- 请在此处编写代码 -->
        <!---------Begin--------->
        var pElement = document.querySelectorAll("p");
        <!---------End--------->
        console.log(pElement);
    </script>
</body>
</html>

第6关: 节点树上的操作

<html>
<head>
<title>myTitle</title>
<meta charset="UTF-8">
</head>
<body>
<div id="div1">
	<div class="cl1">
		<p>文本</p>
		<a>超链接</a>
	</div>
	<div class="cl2">
		<select>
			<option>红</option>
			<option>黄</option>
			<option>蓝</option>
		</select>
	</div>
</div>
  <script>
      var cl2 = document.getElementById("div1").lastElementChild;
	  <!-- 请在此处编写代码 -->
      <!---------Begin--------->
      var myElement = cl2.firstElementChild.children[1];
      <!---------End--------->
      myElement.innerText = "绿";
    </script>
</body>
</html>

第7关: 属性值的获取

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
</head>
<body>
    <p id="p"></p>
    <img class="imgClass"/>
    <a id="a"></a>
    <script>
		<!-- 请在此处编写代码 -->
        <!---------Begin--------->
        var myElement = document.getElementsByClassName("imgClass")[0];
        var srcValue = myElement.className;
        <!---------End--------->
        console.log(srcValue);
    </script>
</body>
</html>

第8关: 属性值的设置

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
</head>
<body>
    <p id="p"></p>
    <form id="form1" method="get" target="https://abc.xyz/def/ghi">This is form</form>
    <a id="a"></a>
    <script>
		<!-- 请在此处编写代码 -->
        <!---------Begin--------->
		var myElement = document.getElementById("form1");
		myElement.method = "post";
        <!---------End--------->
        console.log(document.getElementById("form1").method);
    </script>
</body>
</html>

JavaScript 文档元素操作

第1关: 创建节点

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
</head>
<body>
    <p></p>
    <script>
    	<!-- 请在此处编写代码 -->
        <!---------Begin--------->
        var newNode = document.createElement("form");
        newNode.method = "post";
        newNode.id = "myForm";
        <!---------End--------->
		document.body.appendChild(newNode);
        console.log(newNode.method);
    </script>
</body>
</html>

第2关: 插入节点

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
</head>
<body>
    <ul id="ul1">
        <li>America</li>
        <li>Mexio</li>
    </ul>
    <script>
		<!-- 请在此处编写代码 -->
        <!---------Begin--------->
        var newNode = document.createElement("li");
        newNode.innerText = "Canada";
        document.getElementById("ul1").appendChild(newNode);
        <!---------End--------->
        var out = document.getElementsByTagName("li")[2];
        console.log(out.innerText);
    </script>
</body>
</html>

第3关: 删除节点

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
</head>
<body>
    <ol id="browser">
        <li id="chrome">Chrome</li>
        <li id="firefox">Firefox</li>
        <li id="opera">Opera</li>
        <li id="safari">Safari</li>
    </ol>
    <script>
		<!-- 请在此处编写代码 -->
        <!---------Begin--------->
        var parent = document.getElementById("browser");
        var child = document.getElementById("opera");
        parent.removeChild(child);
        <!---------End--------->
    </script>
</body>
</html>

第4关: 替换节点

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
</head>
<body>
    <ol id="parent">
        <a id="old" href="https://www.google.com">Google</a>
    </ol>
    <script>
        var newChild = document.createElement("a");
        newChild.innerText = "eduCoder";
        newChild.href = "https://www.educoder.net";
		<!-- 请在此处编写代码 -->
        <!---------Begin--------->
        var parent = document.getElementById("parent");
        var old = document.getElementById("old");
        parent.replaceChild(newChild,old);
        <!---------End--------->
    </script>
</body>
</html>

第5关: 综合练习

<html>
<head>
<title>myTitle</title>
<meta charset="utf-8" />
</head>
<body>
<select id="province" onChange="changeCity()">
	<option value="BeiJing" id="bj">北京</option>
    <option value="AnHui" id="ah">安徽</option>
</select>
<select id="city">
    <option value="BeiJingCity">北京市</option>
</select>
<script>
function changeCity() {
    var province = document.getElementById("province");
    var city = document.getElementById("city");
    var length = city.children.length;
    for(var i = length-1;i >= 0;i--) {
        city.removeChild(city.children[i]);
    }
    if(province.value == "BeiJing") {
        var child1 = document.createElement("option");
        child1.value="BeiJingCity";
        child1.innerText="北京市"
        city.appendChild(child1);
    } else {
        var child1 = document.createElement("option");
        child1.value="HuangShanCity";
        child1.innerText="黄山市";
        city.appendChild(child1);
		//请在此处编写代码
        /*********Begin*********/
        var child2 = document.createElement("option");
        child2.value="HeFeiCity";
        child2.innerText="合肥市";
        city.appendChild(child2);
        /*********End*********/
    }
}
</script>
</body>
</html>

JavaScript 事件处理

第1关: 注册事件处理程序

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <button id="button1" onclick="listenButton1()">按钮1</button>
    <button id="button2">按钮2</button>
    <button id="button3">按钮3</button>
    <script>
        function listenButton1() {
            console.log("监听button1");
        }
        function listenButton2() {
            console.log("监听button2");
        }
        function listenButton3() {
            console.log("监听button3");
        }
		//请在此处编写代码
        /********** Begin **********/
        var button2 = document.getElementById("button2");
        button2.onclick = listenButton2;
        var button3 = document.getElementById("button3");
        button3.addEventListener("click",listenButton3);
        /********** End **********/
    </script>
</body>
</html>

第2关: 文档加载事件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body onload="loadEvent()">
    <script>
        function loadEvent() {
			//请在此处编写代码
			/********** Begin **********/
			console.log("Welcome!");
			/********** End **********/
		}
    </script>
</body>
</html>

第3关: 鼠标事件

<!DOCTYPE html>
<html lang="en">
	<head>
    	<meta charset="UTF-8">
    	<title>Title</title>
	</head>
	<body>
    	<p id="p">
        	text
    	</p>
    	<button id="but">
        	button
    	</button>
    	<script>
        	//请在此处编写代码
			/********** Begin **********/
			var myButton = document.getElementById("but");
        	myButton.addEventListener("click",function() {
            	var myElement = document.getElementById("p");
            	myElement.innerText="clicked";
        	})
        	/********** End **********/
    	</script>
	</body>
</html>

第4关: 键盘事件

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body onkeypress="pressEvent(event)">
        <script>
            function pressEvent(event) {
				//请在此处编写代码
				/********** Begin **********/
                var code = event.which;
                if (code == 13) {
                    console.log("cannot use enter");
                }
				/********** End **********/
            }
        </script>
    </body>
</html>

第5关: 表单事件

<!DOCTYPE html>
<html lang="en">
	<head>
    	<meta charset="UTF-8">
    	<title>Title</title>
	</head>
	<body>
    	<form>
        	<input id="input" type="text" onchange="changeEvent()" />
		 	  <input id="input2" type="text"  />
    	</form>
    	<script>
    		function changeEvent() {
    			//请在此处编写代码
				/********** Begin **********/
        		var ele = document.getElementById("input");
        		var len = ele.value.length;
        		if (len <= 12) {
            		console.log("too short input");
        		}
        		/********** End **********/
    		}
    	</script>
	</body>
</html>

第6关: 拖动事件

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
        <div>
			<!-- 请在此处编写代码 -->
            <!---------Begin--------->
            <p ondrag="dragging(event)" id="p1" draggable="true">drag me</p>
            <!---------End--------->
        </div>
        <script>
            function dragging(event) {
               /********** Begin **********/
                console.log(event.target.innerText);
                /********** End **********/
            }
        </script>
    </body>
</html>

 第7关: 事件冒泡

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <div id="div1" onclick="click1()">
        <div id="div2" onclick="click2()">
            <p id="p" onclick="click3()">click me!</p>
        </div>
    </div>
    <script>
        function click1() {
            console.log("root");
        }
        function click2() {
            //请在此处编写代码
			/********** Begin **********/
			 window.event?window.event.cancelBubble=true:event.stopPropagation();
           /********** End **********/
            console.log("parent");
        }
        function click3() {
            console.log("child");
        }
    </script>
</body>
</html>

JavaScript 浏览器对象模型

第1关: 定时器

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <p onclick="handleTimer()">set timer then undo</p>
    <script>
        var timeId;
        function timerTask() {
            console.log("this is timer task");
        }
        function handleTimer() {
            //请在此处编写代码
			/********** Begin **********/
            timeId = window.setTimeout(timerTask,2000);
            /********** End **********/
        }
    </script>
</body>
</html>

第2关: 循环定时器

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <p onclick="task1()">this is task onea</p>
    <p onclick="task2()">this is task two</p>
    <p onclick="removeTask1()">try to remove task one</p>
    <script>
        var timeId1;
        var timeId2;
        function timerTask1() {
            console.log("timerTask1!");
        }
        function timerTask2() {
            console.log("timerTask2!");
        }
        function task1() {
            timeId1 = window.setInterval(timerTask1,2000);
        }
        function task2() {
            timeId2 = window.setInterval(timerTask2,1500);
        }
        function removeTask1() {
			//请在此处编写代码
			/********** Begin **********/
              window.clearInterval(timeId1);
            
			/********** End **********/
        }
    </script>
</body>
</html>

第3关: location对象

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <p onclick="openNew()">Click me to new page!</p>
    <script>
        function openNew() {
            //请在此处编写代码
			/********** Begin **********/
            var loc = window.location;
            console.log(loc.hostname);
            loc.href = "https://www.educoder.net/forums/categories/all?order=newest";
            /********** End **********/
        }
    </script>
</body>
</html>

第4关: 对话框

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <p onclick="inputName()">Click to input name!</p>
    <script>
        function inputName() {
            var result;
            //请在此处编写代码
			/********** Begin **********/
            result = window.prompt("your name", "XiaoMing");
            if (result === null) {
                console.log("name cannot be null");
            }
           /********** End **********/
        }
    </script>
</body>
</html>

第5关: 窗口

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <p onclick="openNewWindow()">open new window</p>
    <script>
        var myWindow;
        function openNewWindow() {
            //请在此处编写代码
			/********** Begin **********/
            myWindow = window.open("Demo.html", "window_name");
            /********** End **********/
        }
    </script>
</body>
</html>

JavaScript 数据类型

第1关:JavaScript数据类型转换

function mainJs(args1,args2,args3) {
	//请在此处编写代码
	/********** Begin **********/
    const a = parseInt(args1);
    const b = parseInt(args2, 16);
    const c = parseFloat(args3);
    
	/********** End **********/
    return a+b+c;
}

### 关于Web前端开发中的数据类型 在Web前端开发中,JavaScript 是最常用的编程语言之一,其数据类型对于开发者来说至关重要。以下是 JavaScript 中的主要数据类型及其说明: #### 基础数据类型 1. **字符串(String)**: 表示文本数据[^3]。 2. **数值(Number)**: 包括整数和浮点数,在 JavaScript 中统一为 Number 类型[^3]。 3. **布尔值(Boolean)**: 只有两个可能的值 `true` 和 `false`[^3]。 4. **未定义(Undefined)**: 当变量被声明但尚未赋值时,默认值为 undefined[^3]。 5. **空值(Null)**: 明确表示“无任何对象值”,是一个特殊的值[^3]。 #### 复杂数据类型 1. **数组(Array)**: 存储多个有序的数据项集合[^3]。 2. **对象(Object)**: 键值对形式存储复杂结构化数据[^3]。 #### 特殊数据类型 1. **Symbol(ES6引入)**: 创建唯一的标识符用于属性名[^3]。 2. **BigInt**: 能够表示任意精度的大整数[^3]。 以下是一段简单的代码展示如何初始化这些基本数据类型: ```javascript let str = "这是一个字符串"; // 字符串 let num = 10; // 数字 let bool = true; // 布尔值 let undf; // 未定义 let nll = null; // 空值 let arr = [1, 2, 3]; // 数组 let obj = { key: 'value' }; // 对象 ``` 如果希望深入学习 Delphi 的 Web 开发框架 TMS WEB Core,则可以参考书籍《Delphi Web前端开发教程——基于TMS WEB Core框架》,该书提供了详细的入门指导以及高级功能介绍[^1]。 针对平台上的具体题目或练习,虽然无法直接提供答案,但是可以通过理解上述基础概念来完成相关测试题。例如选择题选项 `(A) text-decoration`, `(B) text-align`, `(C) line-through`, `(D) text-indent` 都属于 CSS 属性而非数据类型范畴[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小柒_02

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值