HTML5期末

 第一次考试

本题20分
编程实现排序算法

要求如下:
1:函数名为mySort(),带一个数组形参,按由大到小的顺序排
2:排完后,返回最大值

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <meta http-equiv="X-UA-Compatible" content="IE=edge">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>Document</title>

</head>

<body>

    <script>

        function mySort(arr) {

            arr.sort(function (a,b) {

                return b-a;

            })

            return arr[0]

        }

    </script>

</body>

</html>

本题20分
json编程

要求如下:
1:定义一个myJson函数,带有一个形参,处理传过来的json形如{name:'mike',age:18,address:'chengdu'},并返回name的值

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <meta http-equiv="X-UA-Compatible" content="IE=edge">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>Document</title>

</head>

<body>

    <script>

        let myjson = {name:'mike',age:18,address:'chengdu'}

        function myJson(myjson) {

            var obj = eval('(' + myjson + ')')

            return obj.name

        }

        console.log(myJson(myjson));

    </script>

</body>

</html>

本题20分
XML编程
要求如下:

  1. 实现myXML函数,带有一个形参,解析传过来的XML,并返回name节点的值
  2. XML的样式如:

<student><name>mike</name><age>18</age><class>one</class></student>

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<title></title>

</head>

<body>

<script>

function myXML(XMLStirng){

var xmlDoc = new DOMParser().parseFromString(XMLStirng, "text/xml");

return(xmlDoc.childNodes[0].childNodes[0].childNodes[0].nodeValue);

}

// console.log(myXML("<student><name>mike</name><age>18</age><class>one</class></student>"));

</script>

</body>

</html>

本题20分
实现离线存储。
要求如下:

  1. 姓名输入文本框的id与name为name。
  2. 保存按钮id,name,value为ok。
  3. 点击保存按钮后离线存储,所采用的存储技术方式不限制。
  4. 刷新页面后,自动将存储的姓名恢复到姓名输入框中。

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <meta http-equiv="X-UA-Compatible" content="IE=edge">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>Document</title>

</head>

<body>

    <input id="name">

    <input type="button" id="ok" οnclick="save()">ok</input>

    <script>

        function save() {

            let inputVal = document.getElementById('name').value;

            localStorage.setItem('name',inputVal)

        }

        let myName =  localStorage.getItem('name');

        if (myName) {

            document.getElementById('name').value = myName

        }

    </script>

</body>

</html>

本题20分
实现选择器。
样式如下


 要求如下:

  1. 单击可选列表中的元素后出现在已选列表中。
  2. 单击已选列表中的元素后出现在可选列表中。
  3. 其中可选列表的id为select_1,已选列表的id为select_2。
  4. 其中可选列表中的元素的id为option_1,option_2...option_n。

<!DOCTYPE html>

<html lang="en">

  <head>

    <meta charset="UTF-8" />

    <meta http-equiv="X-UA-Compatible" content="IE=edge" />

    <meta name="viewport" content="width=device-width, initial-scale=1.0" />

    <title>Document</title>

  </head>

  <body>

    <select id="select_1" size="4">

      <option value="可选项">可选项</option>

      <option id="option_1" value="北京" οnclick="move(this)">北京</option>

      <option id="option_2" value="成都" οnclick="move(this)">北京</option>

      <option id="option_3" value="重庆" οnclick="move(this)">重庆</option>

    </select>

    <select id="select_2" size="4">

      <option value="已选">已选</option>

    </select>

    <script>

      function move(obj) {

        var objselect1 = document.getElementById("select_1");

        var objselect2 = document.getElementById("select_2");

        if (obj.parentNode == objselect1) {

          objselect2.appendChild(obj);

        } else {

          objselect1.appendChild(obj);

        }

      }

    </script>

  </body>

</html>

第二次考试

本题20分
搜索框编程。
要求如下:

  1. datalist的id为datalist_1,input的id为input_1。
  2. datalist的元素的值与显示项都为asp,jsp与php(全小写)。

<!DOCTYPE html>

<html>

<head>

    <meta charset="utf-8">

    <title></title>

</head>

<body>

<input id="input_1" list="datalist_1" />

<datalist id="datalist_1">

    <option value="asp">asp</option>

    <option value="jsp">jsp</option>

    <option value="php">php</option>

</datalist>

</body>

<html>

本题20分
HTML5新表单控件。
要求如下:

  1. 定义数字微调器:此控件的id为n_1 min为0,max为9。
  2. 定义滑动条:此控件的id为r_1 min为0,max为9。
  3. 定义日期控件:此控件的id为d_1。

<!DOCTYPE html>

<html>

<head>

    <meta charset="utf-8">

    <title></title>

</head>

<body>

<form>

    <input type="range" id="r_1" name="range" value="" min="0" max="9"/>

    <span id="my_range_display"></span><br />

    <input type="number" id="n_1" name="number" value="" min="0" max="9" /><br />

    <input type="date" id="d_1" name="date" value="" />

    <span id="date_1"> </span><br />

</form>

</body>

<html>

<script>

    var objRange=document.getElementById("r_1");

    objRange.addEventListener("change",

        function(){

            var objMyRangeDisplay=document.getElementById("my_range_display");

            objMyRangeDisplay.innerHTML=objRange.value;

        });

    var obj=document.getElementById("d_1");

    obj.addEventListener("change",function(){

        var obj2=document.getElementById("date_1");

        obj2.innerHTML=obj.value;

    });

</script>

本题20分
HTML5语义标签编程
样式如下


要求如下:

  1. 各标签如图所示。
  2. 所有标签相对定位,左浮动,border都为实线,1px,#6699ff。
  3. 所有标签的外边距为10px,内边距为10px。
  4. main的宽为400px
  5. header的宽为358px,高为16px。
  6. nav的宽为358px,高为20px。
  7. footer的宽为358px,高为16px。
  8. aside的宽为100px,高为110px。
  9. section的高为110px。
  10. 标签内的文字不为判分条件,有即可。

<!DOCTYPE html>

<html>

<head>

    <meta charset="utf-8">

    <title></title>

    <style type="text/css">

        main{

            position: relative;

            float: left;

            border: #6699ff solid 1px ;

            margin: 10px;

            padding: 10px;

            width: 400px;

        }

        header{

            position: relative;

            float: left;

            border: #6699ff solid 1px ;

            margin: 10px;

            padding: 10px;

            width: 358px;

            height: 16px;

        }

        nav{

            position: relative;

            float: left;

            border: #6699ff solid 1px ;

            margin: 10px;

            padding: 10px;

            width: 358px;

            height: 20px;

        }

        aside{

            position: relative;

            float: left;

            border: #6699ff solid 1px ;

            margin: 10px;

            padding: 10px;

            width: 100px;

            height: 110px;

        }

        section{

            position: relative;

            float: left;

            border: #6699ff solid 1px ;

            margin: 10px;

            padding: 10px;

            height: 110px;

            width: 216px;

        }

        footer{

            position: relative;

            float: left;

            border: #6699ff solid 1px ;

            margin: 10px;

            padding: 10px;

            width: 358px;

            height: 16px;

        }

    </style>

</head>

<body>

<main>

    <header>人民医院网站</header>

    <nav>首页|党建学习|医院新闻|通知公告|网上办公</nav>

    <aside>内科

        外科

        妇产科

        精神科

    </aside>

    <section>

        张医生 坐诊时间 周一

        李医生 坐诊时间 周一

        王医生 坐诊时间 周一

        陈医生 坐诊时间 周一

    </section>

    <footer>

        版权所有

    </footer>

</main>

</body>

</html>

本题20分
实现canvas绘图处理。
要求如下:

  1. canvas的id为canvas_1。
  2. canvas大小为150*150,top为10,left为10(单位px)。
  3. 在canvas上绘制一正方形。
  4. 正方形起点为10,10。边长为100(单位px)。
  5. 不填充,边线默认。
  6. 用lineTo方法实现。

<!DOCTYPE html>

<html>

<head>

    <meta charset="utf-8">

    <title></title>

</head>

<body>

<canvas id="canvas_1" width="150" height="150"></canvas>

<!--首先,找到 <canvas> 元素:

var c=document.getElementById("myCanvas");

然后,创建 context 对象:

var ctx=c.getContext("2d");-->

<script type="text/javascript">

    var objCanvas=document.getElementById("canvas_1")

    objCanvas.style.top="10px"

    objCanvas.style.left="10px"

    var ctx= objCanvas.getContext("2d")

    function drawRectangle(){

        ctx.beginPath();

        /*moveTo(x,y) 定义线条开始坐标*/

        ctx.moveTo(10,10)

        /*lineTo(x,y) 定义线条结束坐标*/

        ctx.lineTo(10,110)

        ctx.lineTo(110,110)

        ctx.lineTo(110,10)

        ctx.lineTo(10,10)

        /*然后使用 stroke() 方法来绘制线条:*/

        ctx.stroke()

        /*关闭路径*/

        ctx.closePath()

        /*ctx.fillText("Hello World",10,50);*/

    }

    drawRectangle();

</script>

</body>

<html>

本题20分
使用AJAX技术获取服务器时间。
要求如下:

  1. 获取的时间显示在div中,div的id为div_1。
  2. 服务器处理程序的地址为"/public_libs/server_ajax_1.php"
  3. Jquery的引入地址为"/public_libs/jquery.js"(注此项非强制,可用原生代码实现)

<!DOCTYPE html>

<html>

<head>

    <meta charset="utf-8">

    <title></title>

</head>

<body>

<div id="div_1"></div>

<script type="text/javascript">

    var xmlhttp;

    if (window.XMLHttpRequest)

    {

        xmlhttp=new XMLHttpRequest();

    }

    else

    {

        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");

    }

    function myajax(){

        xmlhttp.open("GET","/public_libs/server_ajax_1.php")

        xmlhttp.onreadystatechange=handleStateChange

        xmlhttp.send()

    }

    myajax();

    function handleStateChange(){

        if(xmlhttp.readyState==4&&xmlhttp.status==200)

            document.getElementById("div_1").innerHTML=xmlhttp.responseText

    }

</script>

</body>

<html>

本题10分
Javascript编程实现函数变参的处理
要求如下:

  1. 定义函数showArgs(),实现变参。
  2. 在函数体中,把各参数用"_"串起来,显示在div中。
  3. div的id为div_1。
  4. 如showArgs(1,2,3),则调用此函数后,div中出现 1_2_3。

<!DOCTYPE html>

<html>

<head>

    <meta charset="utf-8">

    <title></title>

    <style>

        #div_1{

            position: relative;

            width: 100px;

            height: 20px;

            border: solid 1px #55557f;

            text-align: center;

        }

    </style>

</head>

<body>

<div id = "div_1" class="div_1"></div>

<script>

   

    var objDiv_1 = document.getElementById("div_1");

    function showArgs(){

        var string = "";

        for(let i = 0; i < arguments.length - 1; i ++){

            string = string + arguments[i] + "_";

        }

        string = string + arguments[arguments.length - 1];

        objDiv_1.innerHTML = string;

    }

   

</script>

</body>

</html>

本题10分
Javascript函数式编程
要求如下:

  1. 定义函数capsWord(args)。
  2. 在函数体中,用函数式编程实现传入的英语语句单词首字母大写。
  3. 返回此处理后的句子。
  4. 如"i am a teacher",则调用此函数后,返回 "I Am A Teacher"。

<!DOCTYPE html>

<html>

<head>

    <meta charset="utf-8">

    <title></title>

</head>

<body>

<script>

    function capsWord(agrs){

        //var result=agrs.split(" ").map(value=>(value.slice(0,1).toUpperCase()+value.slice(1))).join(" ");//将单词首字母变大写

var result=agrs.split(" ").map(value=>(value.slice(0,-1)+value.slice(-1).toUpperCase())).join(" ");//将单词尾字母变大写

        return result;

    }

    var string=capsWord("i am a teacher");

    console.log(string);

</script>

</body>

</html>

本题10分
Javascript分词操作
要求如下:

  1. 定义函数NLP(args)。
  2. 参数为传入的句子。
  3. 在函数体中,将传入句子中的第五个单词返回(return xxx的意思)。
  4. 注意:句子单词之间是用空格分开的。

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <meta http-equiv="X-UA-Compatible" content="IE=edge">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>Document</title>

</head>

<body>

<script>

    function NLP(args){

       

        var b=args.split(' ')

        return b[4]

    }

    console.log(NLP("s s s s s s"));

</script>

</body>

</html>

本题10分
Javascript分词操作
要求如下:

  1. 定义函数NLP(args)。
  2. 参数为传入的句子。
  3. 在函数体中,统计句子中的单词数返回(return xxx)。
  4. 注意:句子单词之间是用空格分开的。

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <meta http-equiv="X-UA-Compatible" content="IE=edge">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>Document</title>

</head>

<body>

<script>

    function NLP(args){

        var count=1;

        var newargs=args.split(' ');

        count = newargs.length;

/*        for(let i=0;i<newargs.length;i++){

            if(newargs[i]==" "){

                count++

            }

        }*/

        return count

    }

    console.log(NLP("s s s s s s"));

</script>

</body>

</html>

本题10分
Javascript编程实现回调
要求如下:

  1. 定义函数main,实现回调。
  2. main函数接受一个回调参数实现回调功能。
  3. 回调时传"callback"字符串参数给回调函数。

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <meta http-equiv="X-UA-Compatible" content="IE=edge">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>回调函数</title>

</head>

<body>

<script>

/*    function a() {

    return 1

}

function b(aa) {

    return 2 + aa

}

//调用:

var c=0

c = b(a()) //A是个函数,但它又作为一个参数在B函数中被调*/

console.log(c) //结果显示3

    function main(mycallback){

        if(typeof mycallback=="function"){

            mycallback("callback");

        }

    }

    function mycallback(a)

    {

        console.log(a);

    }

    /*回调参数:方法内部调用方法时进行传参则不加()*/

    main(mycallback);

</script>

</body>

</html>

本题10分
实现canvas绘图处理。
要求如下:

  1. canvas的id为canvas_1。
  2. canvas大小为150*150,top为10,left为10。(单位px)
  3. 在canvas上绘制图片,图片地址如下。
  4. /public_libs/img_5.png
  5. 图片大小为原始大小,放置位置为1,1。

<!DOCTYPE html>

<html>

<head>

    <meta charset="utf-8">

    <title></title>

</head>

<body>

<canvas id="canvas_1">

</canvas>

<script>

    var objCanvas=document.getElementById("canvas_1");

    objCanvas.style.border="solid 1px #FF0000";

    var ctx=objCanvas.getContext("2d");

    canvas_1.height=150;

    canvas_1.width=150;

    canvas_1.style.top="10px";

    canvas_1.style.left="10px";

    //填充图片

    function fillImage(){

        var objImg=new Image();

        objImg.src="/public_libs/img_5.png";

        objImg.οnlοad=function(){

            ctx.drawImage(objImg,1,1);

        }

    }

    fillImage();

</script>

</body>

</html>

本题10分
实现canvas绘图处理。
要求如下:

  1. canvas的id为canvas_1。
  2. canvas大小为150*150,top为10,left为10。(单位px)
  3. 在canvas上绘制文字,要求如下:
  4. 文字在canvas中的坐标为30,30,
  5. 文字内容为hello world,
  6. 字体为Arial,大小为20px,RGB正红色。

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <meta http-equiv="X-UA-Compatible" content="IE=edge">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>Document</title>

</head>

<body>

<canvas id="canvas_1"></canvas>

<script>

    canvas_1.height = 150;

    canvas_1.width = 150;//canvas大小为150*150,top为10,left为10。(单位px)

    canvas_1.style.position = 'absolute';

    canvas_1.style.top = "10px";

    canvas_1.style.left = "10px";

    var ctx = canvas_1.getContext("2d");

    ctx.fillStyle="red"

    ctx.font="20px Arial"//字体为Arial,大小为20px,RGB正红色。

    ctx.fillText("hello world",30,30)//文字在canvas中的坐标为30,30,

</script>

</body>

</html>

本题10分
使用AJAX技术获取服务器时间。
要求如下:

  1. 获取的时间显示在div中,div的id为div_1。
  2. 从服务器返回的数据是JSON格式,时间数据的键为time。
  3. 服务器处理程序的地址为"/public_libs/server_ajax_521_1.php"
  4. Jquery的引入地址为"/public_libs/jquery.js"(注此项非强制,可用原生代码实现)

<!DOCTYPE html>

<html>

<head>

    <meta charset="utf-8">

    <title></title>

</head>

<body>

<div id="div_1"></div>

<script src="/public_libs/jquery.js"></script>//Jquery的引入地址为"/public_libs/jquery.js"(注此项非强制,可用原生代码实现)

<script>

    var xmlHttp=new XMLHttpRequest;

    function getTime(){

        var url="/public_libs/server_ajax_521_1.php";//服务器处理程序的地址为"/public_libs/server_ajax_521_1.php"

        xmlHttp.open("GET",url);

        xmlHttp.onreadystatechange=handleStateChange;

        xmlHttp.send();

    }

    function handleStateChange(){

        if(xmlHttp.readyState==4&&xmlHttp.status==200){

            document.getElementById("div_1").innerHTML=JSON.parse(xmlHttp.responseText).time;

        }

    }

    getTime();

</script>

</body>

</html>

本题10分
使用AJAX技术无刷新提交数据到服务器。
要求如下:

  1. 表单id为form_1,姓名输入框id为name,name为name。
  2. 提交按钮类型为button,id为b_1,点击提交数据到服务器,提交方式post
  3. 提交成功后,把服务器返回的数据显示在div中,div的id为div_1
  4. 服务器处理程序的地址为"/public_libs/server_ajax_post_1.php"
  5. jquery的引入地址为"/public_libs/jquery.js"(注此项非强制,可用原生代码实现)

<!DOCTYPE html>

<html>

<head>

    <meta charset="utf-8">

    <title></title>

</head>

<body>

<form id="form_1" action="" >

    姓名:<input type="text" name="name" id="name"/>

    <input type="button" id="b_1" value=""

           formmethod="post" />

</form>

<div id="div_1"></div>

</body>

<script src="/public_libs/jquery.js"></script>

<script>

    $("#b_1").click(function(){

        $.ajax({

            url:'/public_libs/server_ajax_post_1.php',

            type:"POST",

            data:$('#form_1').serialize(),

            success: function(name) {

                $("#div_1").text(name);

            }

        });

    });

</script>

<html>

本题10分
使用VUE技术实现数据响应式处理。
要求如下:

  1. 定义div,id为app1。在div中定义子div,id为div_1
  2. div_1的绑定模式为v-text,值为div_1
  3. Vue的对象名为app1。
  4. 库地址:"/public_libs/vue.js"

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <meta http-equiv="X-UA-Compatible" content="IE=edge">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>Document</title>

    <script src="/public_libs/vue.js"></script>

</head>

<body>

    <div id="app1">

        <div id="div_1" v-text="div_1"></div>

    </div>

    <script>

        var app1 = new Vue({

            el: '#app1',

            data: {

                div_1:'div_1'

                

            }

        })

    </script>

</body>

</html>

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值