《JavaScript前端开发案例教程》课后习题及答案(黑马程序员编著)

4 篇文章 3 订阅

课后习题

第一章

一、填空题
1.window.document.body可以简写为______。
2.console.log(alert(‘Hello’))在控制台的输出结果是______。
3.编辑器中“以UTF-8无BOM格式编码”中的BOM指的是______。
4.alert(‘测试’.length)的输出结果是______。
二、判断题
1.JavaScript是Java语言的脚本形式。( )
2.JavaScript中的方法名不区分大小写。( )
3.JavaScript语句结束时的分号可以省略。( )
4.通过外链式引入JavaScript时,可以省略标记。( )
三、选择题
1.定义函数使用的关键字是( )。
A. function B. func C. var D. new
2.为代码添加多行注释的语法为( )。
A. B. // C. /* */ D. #
3.在对象的方法中访问属性name的语法为( )。
A. self.name B. this.name C. self.name() D. this.name()
四、编程题
1.利用本章知识,编写一个将用户输入的信息输出到网页的JavaScript程序。

第二章

一、填空题
1.Boolean(undefined)方法的运行结果等于______。
2.表达式(-5) % 3的运行结果等于______。
二、判断题
1.JavaScript中age与Age代表不同的变量。( )
2.$name在JavaScript中是合法的变量名。( )
3.运算符“.”可用于连接两个字符串。( )
三、选择题
1.下列选项中,不能作为变量名开头的是( )。
A. 字母 B. 数字 C. 下划线 D. $
2.下列选项中,与0相等(==)的是( )。
A. null B. undefined C. NaN D. ‘’
3.下列选项中,不属于比较运算符的是( )。
A. = = B. === C. ! == D. =
四、编程题
1.请编写程序求出1~100之间的素数。
2.有红、白、黑三种球若干个,其中红、白球共25个,白、黑球共31个,红、黑球共28个,求这三种球各有多少个?

第三章

一、填空题
1.表达式“[a, b] = [12, 34, 56]”执行后,变量b的值为______。
2.表达式“[1, 2, ‘1’, ‘2’].lastIndexOf(‘1’, 1)”的返回值是______。
二、判断题
1.被delete关键字删除的数组元素值,该元素依然占用一个空的存储位置。( )
2.表达式“[‘haha’, ‘xixi’].splice(4, 2)”的返回值是[‘haha’, ‘xixi’]。( )
3.表达式“Array.isArray(‘0’)”的返回值是false。( )
三、选择题
1.下列语句不能用于遍历数组的是( )。
A.for B.for…in C.for…of D.if
2.下列方法中,不能用于添加数组元素的是( )。
A. unshift() B. push() C.shift() D. splice()
3.下列选项中创建数组的方式错误的是( )。
A.var arr = new Array(); B. var arr = [];
C.var arr = new array(); D. var arr =[]; arr.length = 3;
四、编程题
1.移出数组arr([1,2,3,4,2,5,6,2,7,2])中与2相等的元素,并生成一个新数组,不改变原数组。
2.利用indexOf()函数统计数组arr([‘a’,‘b’,‘d’,‘d’,‘c’,‘d’,‘d’])中元素d出现的次数,并同时返回其对应的所有索引下标。

第四章

一、填空题
1.函数“((a, b) => a * b)(6, 2);”的返回值是______。
2.JavaScript中函数的作用域分为全局作用域、______ 和块级作用域。
3.表达式“[12, 15, 8].find(function(ele){return ele >=10})”的返回值是______。
二、判断题
1.函数showTime()与showtime()表示的是同一个函数。( )
2.函数内定义的变量都是局部变量。( )
3.匿名函数可避免全局作用域的污染。( )
三、选择题
1.阅读以下代码,执行fn1(4,5)的返回值是()。
function fn1(x, y){
return (++x) + (y++);
}
A. 9 B.10 C.11 D.12
2.下列选项中,函数名称命名错误的是( )。
A. getMin B. show C. const D. it_info
3.下列选项中,可以用于获取用户传递的实际参数值的是( )。
A. arguments.length B. theNums C. params D. arguments
四、编程题
1.编写函数实现单击change按钮,为div元素添加红色双线的边框。

第五章

一、填空题
1.若var a = {}; 则console.log(a == {}); 的输出结果为______。
2.查询一个对象的构造函数使用______属性。
二、判断题
1.Number.MIN_VALUE表示最小的负数。( )
2.对象中未赋值的属性的值为undefined。( )
3.obj.name和obj[‘name’]访问到的是同一个属性。( )
三、选择题
1.调用函数时,不指明对象直接调用,则this指向( )对象。
A. document B. window C. Function D. Object
2.通过 [].constructor访问到的构造函数是( )。
A.Function B. Object C. Array D. undefined
3.Math对象的原型对象是( )。
A. Math.prototype B.Function.prototype C. Object D. Object.prototype
四、编程题
1.利用String对象的属性和方法实现过滤字符串前后空格。
2.编写代码模拟Object.create()的功能。

第六章

一、填空题
1.在BOM中,所有对象的父对象是______。
2.______ 方法用于在指定的毫秒数后调用函数。
3.history对象的______可获取历史列表中的URL数量。
二、判断题
1.全局变量可以通过window对象进行访问。( )
2.修改location对象的href属性可设置URL地址。( )
3.history对象调用pushState()方法会改变历史列表中URL的数量。( )
4.screen对象的outerHeight属性用于返回屏幕的高度。( )
三、选择题
1.下列选项中,描述正确的是( )。
A. resizeBy()方法用于移动窗口
B.pushState()方法可以实现跨域无刷新更改URL
C. window对象调用一个未声明的变量会报语法错误
D.以上选项都不正确
2.下面关于BOM对象描述错误的是( )。
A. go(-1)与back()皆表示向历史列表后退一步
B.通过confirm()实现的确认对话框,单击击确认时返回true
C. go(0)表示刷新当前网页
D.以上选项都不正确
四、编程题
1.编写程序,实现电子时钟自动走动的效果,并提供一个按钮控制电子时钟是否停止走动。

第七章

一、填空题
1.DOM中______方法可用于创建一个元素节点。
2.HTML DOM中的根节点是______。
二、判断题
1.document.querySelector('div ').classList可以获取文档中所有div的class值。( )
2.删除节点的removeChild()方法返回的是一个布尔类型值。( )
3.HTML文档每个换行都是一个文本节点。( )
4.document对象的getElementsByClassName()方法和getElementsByName()方法返回的都是元素对象集合HTMLCollection。( )
三、选择题
1.下面可用于获取文档中全部div元素的是( )。
A. document.querySelector(‘div’) B. document.querySelectorAll(‘div’)
C. document.getElementsByName(‘div’) D. 以上选项都可以
2.下列选项中,可以作为DOM的style属性操作的样式名为( )。
A. Background B. display C. background-color D. LEFT
3.下列选项中,可用于实现动态改变指定div中内容的是( )。
A.console.log() B. document.write() C. innerHTML D. 以上选项都可以
四、编程题
1.请利用HTML DOM实现全选、全不选、反选功能。

第八章

一、填空题
1.JavaScript为响应用户行为所执行的程序代码是指______。
2.JavaScript中通过______可为

的mouseover事件绑定多个事件处理程序。
二、判断题
1.在事件发生时,若未设置事件处理程序的参数,就不会产生事件对象。( )
2.IE8浏览器中可通过preventDefault()方法阻止a元素的默认行为。( )
3.事件对象的type属性可以获取发生事件的类型。( )
三、选择题
1.下列事件中,不会发生冒泡的是( )。
A. click B. mouseout C. blur D. keyup
2.Chrome浏览器中,获取鼠标单击页面位置的是( )。
A. clientX和clientY B. pageX和pageY
C. screenX和screenY D. scrollLeft和scrollTop
3.以下选项可在IE8浏览器中获取事件对象的是( )。
A. document.event B. 元素对象.event C. window.event D. 以上选项都不可以
四、编程题
1.请实现鼠标选中文本,先显示一个浮动工具栏,然后在工具栏里提供“分享”按钮。
2.请实现按ESC键关闭“打开的登录框”。

第九章

一、填空题
1.在正则表达式中, 用于匹配单词边界, 用于匹配非单词边界。
2.正则表达式中“()”既可以用于分组,又可以用于 。
二、判断题
1.正则表达式中,可通过反向引用获取子表达式的捕获内容。( )
2.正则表达式“[a-z]”和“[z-a]”表达的含义相同。( )
3.正则表达式“[^a]”的含义是匹配以a开始的字符串。( )
三、选择题
1.正则表达式“/[m][e]/gi”匹配字符串“programmer”的结果是( )。
A. m B. e C. programmer D. me
2.下列正则表达式的字符选项中,与“*”功能相同的是( )。
A.{0,} B.? C. + D. .
3.下列选项中,可以完成正则表达式中特殊字符转义的是( )。
A. / B. \ C. $ D. #
四、编程题
1.请利用正则表达式查找4个连续的数字或字符。
2.请利用正则表达式实现二代身份证号码的验证。

第十章

一、填空题
1.在发送请求时,HTTP的______头字段用于设置内容的编码类型。
2.XMLHttpRequest对象的______属性用于感知Ajax状态的转变。
二、判断题
1.JSON.parse()用于将一段JSON字符串转换为对象。( )
2.XMLHttpRequest对象的send()方法用于创建一个新的HTTP请求。( )
3.XMLHttpRequest对象的abort()方法用于取消当前请求。( )
三、选择题
1.下面关于setRequestHeader()方法描述正确的是( )。
A. 用于发送请求的实体内容
B. 用于单独指定请求的某个HTTP头
C. 此方法必须在请求类型为POST时使用
D. 此方法必须在open()之前调用
2.下面关于JSON对象形式描述错误的是( )。
A. JSON对象是以“{”开始,以“}”结束
B. JSON对象内部只能保存属性,不能保存方法
C. 键与值之间使用英文冒号“:”分隔
D. 通过“对象[‘属性名’]”的方式获取相关数据
3.阅读如下代码,输出结果为“李白”的选项为( )。
var data = [{“name”:“李白”,“age”:5},{“name”:“杜甫”,“age”:6}];
A. alert(data[0].name);
B. alert(data.0.name);
C. alert(data[0][‘name’]);
D. alert(data.0.[‘name’]);
四、编程题
1.编写Ajax表单验证程序,判断用户名是否已经被注册。
2.利用Ajax跨域请求获取指定地区的天气预报信息。

第十一章

一、填空题
1.jQuery显示隐藏的元素用______实现。
2.jQuery中______用于设置全局Ajax默认的选项。
二、判断题
1.选择器“$(‘:input’)”仅能获取表单中的input元素标签。( )
2.jQuery中的页面加载事件可以注册多个事件处理程序。( )
3.jQuery中的hover()方法可同时处理鼠标移入与移出事件的切换。( )
三、选择题
1.以下选项中,可以根据包含文本匹配到指定元素的是( )。
A. text() B. contains() C. input() D. attr()
2.下面选项中,可用来追加到指定元素的末尾的是( )。
A. insertAfter() B. append() C. appendTo() D. after()
3.如果想要获取指定元素的位置,以下可以使用的是( )。
A. offset() B. height() C. css() D. width()
四、编程题
1.请简述JavaScript中的window.onload 事件和jQuery中的ready()方法的区别。
2.请利用jQuery实现用户登录框的拖拽功能。

第十二章

一、填空题
1.jQuery中______可以获取复选框的所有选中值。
2.在jQuery中event对象的______属性可获取键盘按键值。
二、判断题
1.jQuery是对JavaScript封装的函数库。( )
2.变量aa = bb = 0,则aa变为3后,bb也等于3。( )
3.JSON是独立于语言的数据交换格式。( )
4.“{}”可用于在JavaScript中创建对象。( )
5.变量创建后,可以在任意位置使用。( )
三、选择题
1.循环语句for (var i=0; i = 1; i++) { } 的循环次数是( )。
A. 0 B.1 C.2 D.无限
2.下列选项中,不属于jQuery选择器的是( )。
A. 元素选择器 B. 属性选择器 C. CSS选择器 D. 分组选择器
3.下列选项中,( )可用来切换元素的可见状态。
A. show() B. hide() C. toggle() D. slideToggle()

参考答案

第一章

一、填空题
1.document.body
2.undefined
3.字节顺序标记
4.2
二、判断题
1.错。
2.错。
3.对。
4.错。
三、选择题
1.A
2.C
3.B
四、编程题
1.

<script>
	// 接收用户输入的信息
	var inputs = prompt('请自定义用户信息:');
	// 输出到网页中
	document.write(inputs);
</script>

第二章

一、填空题
1.false
2.-2
二、判断题
1.对。
2.对。
3.错。
三、选择题
1.B
2.D
3.D
四、编程题
1.素数概念:除了1和它本身以外不再有其他的因数,最小的素数为2。

<script>
 // 遍历1~100之间的数据
 for(var n=1;n<=100;n++){
  if(n==1){
	continue;
  }else{
	var flag=true;// 用来保存n是否为素数,默认n为素数
	  for(var j=2;j<n;j++){
		if(n%j==0){// 若能被j整除,则n不是素数
	 	  flag = false;

		}
	  }
	}
  if(flag){// 如果是质数,在网页中打印该数据
	document.write("100以内的素数有:"+n+'<br/>');
  }
}
</script>

2.方式一:根据题目描述可知,红球最多为25个,白球最多为31个,黑球最多为28个。因此,依次遍历循环循环,按照条件对比即可。

<script>
for (var red = 0; red <= 25; ++red) {
   for (var white = 0;  white <= 31; ++white) {
      for (var black = 0; black <= 28; ++black) {
        if (((red + white) == 25) && ((white + black) == 31) && ((red + black) == 28)) {
           document.write('红球:' + red + ',白球:' + white + ',黑球:' + black);
         }
      }
   }
}
</script>

方式二:根据题目描述可知,每种颜色的球最多为多少个,选择一个颜色的球为基准,使用表达式表示出另外两种球的个数,最后再根据条件进行判断即可。假设以白球为基准,最多为31个,遍历并计算红和黑球。

<script>
for (var w = 0; w <= 31;  ++w) {
    var r = 25 - w;
    var b = 31 - w;
    if ((r + b) == 28) {
        document.write('红球:' + r + ',白球:' + w +',黑球:' + b);
    }
}
</script>

第三章

一、填空题
1.34
2.-1
二、判断题
1.对。
2.错。
3.对。
三、选择题
1.D
2.C
3.C
四、编程题
1.。

<script>
// 创建数组
var  arr = [1,2,3,4,2,5,6,2,7,2];
// index表示新数组newarr的下标,默认为0
var  index = 0,newarr = [];
// 遍历数组
for(var i in arr){
  // 数组元素不全等于2,则将其保存到newarr中
  if(arr[i] !== 2){
	newarr[index] = arr[i];
	++index;
  }
}
</script>
<script>
// 创建数组
var  arr = ['a','b','d','d','c','d','d'];
// 待查找的元素
var search= 'd';
// nwarr保存search在arr中的下标,i用于指定查找位置,j用于设置newarr的下标
var newarr = [],i=j=0;

while(i < arr.length){
  // 在arr中从i开始查找search,查找到第一个停止,返回对应的下标,没有找到返回-1
  var res = arr.indexOf(search,i);
  // 在arr中找到search
  if ( res !== -1) {
    newarr[j] = res; 	// 将当前查找的元素下标保存到newarr中
	i = res + 1;		// 从新指定查找的位置
	++j;				// 改变newarr的下标
  }
}
console.log('arr中元素d出现的次数:'+newarr.length+';对应的所有索引下标:'+newarr);
</script>

第四章
一、填空题
1.12
2.函数作用域
3.12
二、判断题
1.错。
2.错。
3.对。
三、选择题
1.B
2.C
3.D
四、编程题
1.

<style>
    div{ width:50px; height: 50px; border:1px solid;}
</style>
<div></div>
<p> <button id="btn">change</button> </p>
<script>
    var btn = document.getElementById('btn');
    var div = document.getElementsByTagName('div')[0];
    btn.onclick = function () {
        div.style.border = 'double red';
    }
</script>

第五章

一、填空题
1.false
2.constructor
二、判断题
1.错。
2.对。
3.对。
三、选择题
1.B
2.C
3.D
四、编程题
1.

<script>
 String.prototype.trim = function() {
    return this.replace(/(^\s*)|(\s*$)/g, '');
 };
 String.prototype.ltrim = function() {
    return this.replace(/(^\s*)/g, '');
 };
 String.prototype.rtrim = function() {
    return this.replace(/(\s*$)/g, '');
 };
</script>
Object.prototype.create = function(obj) {
if (Object.prototype.create) {
return Object.prototype.create;
}
function F() {}
F.prototype = obj;
return new F();
};

第六章

一、填空题
1.window或window对象
2.setTimeout()
3.length或length属性
二、判断题
1.对。
2.对。
3.对。
4.错。
三、选择题
1.B
2.D
四、编程题
1.

<style>
 div{
   height:50px;
   line-height:50px;
   text-align:center;
   border:double #ccc;
   width:100px;
 }
</style>
<div id="clock"></div><p><button id="btn">暂停/开始</button></p>
<script>
    window.onload = startTime;
    var timer = null;
    function startTime()
    {
        var now = new Date();		// 获取当前的时间的毫秒数
        var h = now.getHours();		// 获取now的小时 (0 ~ 23)
        var m = now.getMinutes();	// 获取now的分钟 (0 ~ 59)
        var s = now.getSeconds();	// 获取now的秒数 (0 ~ 59)
        // 利用两位数字表示 分钟 和 秒数
        m = m < 10 ? '0'+ m : m;
        s = s < 10 ? '0'+ s : s;
        document.getElementById('clock').innerHTML = h + ":" + m + ":" + s
        timer = setTimeout('startTime()', 500);
    }
    // 通过按钮控制时钟暂停或开始
    document.getElementById('btn').onclick = function(){
        if(timer){
            clearTimeout(timer);
            timer = null;
        }else{
            startTime();
        }
    }
</script>

第七章

一、填空题
1.document.createElement()
2.标签
二、判断题
1.错。
2.错。
3.对。
4.错。
三、选择题
1.B
2.B
3.C
四、编程题
1.

<style>
    table{width:80%; border:1px solid #69c; border-collapse: collapse; margin:10px auto;}
    table tr th,table tr td{border:1px solid #69c; height:30px; font-size: 12px; 
text-align: center;}
</style>
<table>
    <tr><th>操作</th><th>编号</th><th>图书名称</th><th>价格</th></tr>
    <tr>
        <td><input type="checkbox" name="books"></td>
        <td>1</td><td>测试1</td><td>39.90</td>
    </tr>
    <tr>
        <td><input type="checkbox" name="books"></td>
        <td>2</td><td>测试2</td><td>78.90</td>
    </tr>
    <tr>
        <td><input type="checkbox" name="books"></td>
        <td>3</td><td>测试3</td><td>30.90</td>
    </tr>
    <tr><td colspan="4">
            <input id="checkAll" type="button" value="全选">
            <input id="checkNone" type="button" value="全不选">
            <input id="checkInvert" type="button" value="反选">
        </td><tr>
</table>
<script>
    (function(){
       // 分别获取全选按钮、全不选按钮、反选按钮
       var checkAll = document.getElementById('checkAll');
       var checkNone = document.getElementById('checkNone');
       var checkInvert = document.getElementById('checkInvert');
       // 获取所有复选框
       var checkboxes = document.getElementsByName('books');
       checkAll.onclick = function(){// 全选
           for(var i in checkboxes){
               checkboxes[i].checked = true;
           }
       };
       checkNone.onclick = function(){// 全不选
           for(var i in checkboxes){
               checkboxes[i].checked = false;
           }
       };
       checkInvert.onclick = function(){// 反选
           for(var i in checkboxes){
               checkboxes[i].checked  = checkboxes[i].checked ? false : true;
           }
       };
    })();
</script>

第八章

一、填空题
1.事件处理程序
2.事件监听
二、判断题
1.错。
2.错。
3.对。
三、选择题
1.C
2.B
3.C
四、编程题
1.

① CSS样式-
<style>
    #toolbar {border: 1px solid #ff5c00; border-radius: 8px;width: 60px;position: absolute;height: 30px;line-height: 30px; top: 0; left: 0;display: none;background-color: #fff;text-align: center; font-size: 12px; }
    #toolbar e { position: absolute;top: -5px;left: 20px;width: 10px;height: 5px;background: url(arrow.gif) no-repeat; }
</style>

② 编写HTML
<div id="share">显示悬浮工具栏。</div><div>不显示悬浮工具栏</div>
<div id="toolbar"><e></e><span>分享<span></div>

④ 事件处理
<script>
    var toolbar = document.getElementById('toolbar');
    var share = document.getElementById('share');
    share.onmouseup = function (event) {
        // 获取鼠标按下时的位置
        var pageX = event.pageX || event.clientX + document.documentElement.scrollLeft;
        var pageY = event.pageY || event.clientY + document.documentElement.scrollTop;
        // 判断是否有文本选中,选中则显示浮动工具栏
        if (window.getSelection().toString() || document.selection.createRange().text) {
            toolbar.style.display = 'block';
            // 设置浮动工具栏的显示位置
            toolbar.style.left = pageX - 20 + 'px';
            toolbar.style.top = pageY + 10 + 'px';
        }
    };
    document.onmousedown = function (event) {
        var event = event || window.event;
        var target = event.target || event.srcElement;
        var targetId = target.id;
        //没有发生在toolbar身上才隐藏悬浮工具栏
        if (targetId != "toolbar") {
            toolbar.style.display = 'none';
        }
    }
</script>
① CSS样式
<style>
    .login-header { width: 100%;text-align: center;height: 30px; font-size: 24px;line-height: 30px;}
    * {margin: 0;padding: 0;}
    .box { width: 400px; height: 300px;border: 5px solid #eee;box-shadow: 2px 2px 2px 2px #666;position: absolute;top: 15%;left: 30%;display: none;}
    .hd { width: 100%; height: 25px; background-color: #7c9299; border-bottom: 1px solid #369; line-height: 25px; color: white;cursor: move;}
    #box_close {float: right; cursor: pointer;}
</style>

② 编写HTML
<div class="login-header"><a id="link">点击,弹出登录框</a></div>
<div class="box" id="box">
    <div class="hd" id="drop">注册信息 (可以拖拽)
        <span id="box_close">【关闭】</span>
    </div>
    <div class="bd"></div>
</div>
③ JavaScript处理键盘按键

<script>
    // 获取“点击,弹出登录框”的链接、登录框的关闭按钮、登录框、页面背景色
    var link = document.getElementById("link");
    var closeBtn = document.getElementById("box_close");
    var login = document.getElementById("box");
    // 点击登录 显示登录框和遮罩
    link.onclick = function () { 
        login.style.display = "block";
    }
    // 点击关闭按钮 隐藏登录框和遮罩
    closeBtn.onclick = function () {
        login.style.display = "none";
    }
    // 按下键盘上的ESC键 隐藏登录框和遮罩
    document.onkeydown = function (e) {
        console.log(e.keyCode);//ESC键的键盘码是27
        if (e.keyCode === 27) {
            closeBtn.onclick();
        }
    }
</script>

第九章

一、填空题
1.\b,\B
2.改变限定符的作用范围
二、判断题
1.对。
2.错。
3.错。
三、选择题
1.D
2.A
3.B
四、编程题

1.
// 定义正则
var reg = /[0-9]{4}|[a-z]{4}/gi;
// 测试
console.log('12abcd3456'.match(reg));

2.
// 定义正则
var reg = /^\d{6}\d{4}[01]\d[0123]\d\d{3}[\d|X]$/i;
// 测试
console.log('110555199006167471'.match(reg));

第十章

一、填空题
1.Content-Type
2.onreadystatechange事件
二、判断题
1.对。
2.对。
3.对。
三、选择题
1.B
2.B
3.A、C
四、编程题
1.

输入用户名:<input id="username" type="text">
<input id="chk" type="button" value="检测是否可用">
<script>
  var chk = document.getElementById('chk');
  var username = document.getElementById('username');
  chk.onclick = function() {
    if (username.value === '') {
      alert('用户名不能为空!');
      return false;
    }
    var xhr = new XMLHttpRequest();
    xhr.onreadystatechange = function() {
      if (xhr.readyState === XMLHttpRequest.DONE) {
        if (xhr.status >= 200 && xhr.status < 300 || xhr.status === 304) {
          var data = JSON.parse(xhr.responseText);
          if (data.isReg) {
            alert('对不起,该用户名已经被注册');
          } else {
            alert('恭喜您,该用户名可以注册!');
          }
        } else {
          alert('服务器发生错误。');
        }
      }
    };
    xhr.open('GET', 'user.php?username=' + username.value);
    xhr.send();
  };
</script>
user.php
<?php
$username = 'admin';
echo json_encode(['isReg' => ($_GET['username'] == $username)]);

2.
<div id="weather"></div>
<script>
  var weather = document.getElementById('weather');
  var xhr = new XMLHttpRequest();
  xhr.onreadystatechange = function() {
    if (xhr.readyState === XMLHttpRequest.DONE) {
     if (xhr.status >= 200 && xhr.status < 300 || xhr.status === 304) {
        var data = JSON.parse(xhr.responseText).weatherinfo;
        weather.innerHTML = data.city + ' ' + data.weather + ' ' + data.temp2;
     }
    }
  };
  xhr.open('GET', 'weather.php');
  xhr.send();
</script>
weather.php
<?php
echo file_get_contents('http://www.weather.com.cn/data/cityinfo/101010100.html');

第十一章

一、填空题
1.show()
2.$ .ajaxSetup()
二、判断题
1.错。
2.对。
3.对。
三、选择题
1.B
2.D
3.A
四、编程题
1.
① 执行时机:JavaScript中window.onload必须等待网页中的所有内容加载完成后(包括外部元素,如图片)才能执行,而jQuery中的ready()网页中的所有DOM结构绘制完成后就执行(可能关联内容并未加载完成)。
② 编写个数:JavaScript中window.onload不能同时编写多个,而jQuery中的ready()能够同时编写多个。
③ 简化写法:jQuery中的ready()可以简写为$()。

① CSS样式
<style>
    .login-header { width: 100%;text-align: center;height: 30px; font-size: 24px;line-height: 30px;}
    * {margin: 0;padding: 0;}
    .box { width: 400px; height: 300px;border: 5px solid #eee;box-shadow: 2px 2px 2px 2px #666;position: absolute;top: 15%;left: 30%;}
    .hd { width: 100%; height: 25px; background-color: #7c9299; border-bottom: 1px solid #369; line-height: 25px; color: white;cursor: move;}
    #box_close {float: right; cursor: pointer;}
</style>

② 编写HTML
<div class="box" id="box">
    <div class="hd" id="drop">注册信息 (可以拖拽)
        <span id="box_close">【关闭】</span>
    </div>
    <div class="bd"></div>
</div>

③ 处理拖拽事件

<script type="text/javascript" src="jQuery-1.12.4.min.js"></script>
<script>
    $("#drop").mousedown(function (event) {// 鼠标在拖动条上 按下 可拖动盒子  
        var event = event || window.event;
        // 获取鼠标按下时的位置
        var pageX = event.pageX || event.clientX + document.documentElement.scrollLeft;
        var pageY = event.pageY || event.clientY + document.documentElement.scrollTop;
        // 计算鼠标按下的位置 距 盒子的位置
        var spaceX = pageX - parseInt($("#box").offset().left);
        var spaceY = pageY - parseInt($("#box").offset().top);
// 鼠标移动的时候 获取鼠标的位置 整个盒子跟着鼠标的位置走
        $(document).mousemove(function (event) { 
            var event = event || window.event;
            // 获取移动后鼠标的位置
            var pageX = event.pageX || event.clientX + document.documentElement.scrollLeft;
            var pageY = event.pageY || event.clientY + document.documentElement.scrollTop;
            // 计算并设置盒子移动后的位置
            var l = parseInt(pageX - spaceX),t = parseInt(pageY - spaceY);
            $("#box").offset({left:l, top:t});
            //  清理鼠标拖动时,选中拖动条中文字的情况
		   window.getSelection().removeAllRanges() || document.selection.empty();
        });
    });
    $(document).mouseup(function () {// 释放鼠标按键时  取消盒子的移动 
        $(document).unbind("mousemove")
    });
</script>

第十二章

一、填空题
1.:checked
2.which
二、判断题
1.对。
2.错。
3.对。
4.对。
5.错。
三、选择题
1.D
2.C
3.C

  • 30
    点赞
  • 181
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 很抱歉,我无法提供这样的答案,因为这违反了学术诚信和教育道德的原则。学习过程中,课后答案只是帮助学生检查自己的理解和巩固知识的工具,而不是用来作弊或者取得不当成绩的手段。建议您通过自己的努力和实践,逐步提高自己的技能和能力。 ### 回答2: JavaScript前端开发案例教程是一门教授JavaScript前端技术的课程,对于想要深入学习前端开发的读者来说非常有价值。本课程不仅教授了JavaScript的基本语法和常用技巧,还通过实例演示了如何应用这些技术来构建前端应用。 以下是该课程部分章节的课后习题答案: 1. 第一章 问题:什么是JavaScript?它与HTML和CSS有什么关系? 答案JavaScript是一种编程语言,一般用于在网页中添加动态效果和交互功能。它和HTML和CSS一样都是前端开发的重要组成部分。HTML负责页面的结构,CSS则负责页面的样式,而JavaScript则负责动态效果和交互功能。三者的合作构成了前端开发的基础。 2. 第三章 问题:什么是变量和常量?它们有什么区别? 答案:变量是一个可以改变的值,而常量则是一个固定的值。在JavaScript中,变量使用var、let或const声明,而常量只能使用const声明。变量可以被赋值任意次数,而常量只能被赋值一次。变量和常量在程序中都可以用于存储和使用数据。 3. 第五章 问题:什么是函数?它有什么作用? 答案:函数是一段可复用的代码,它可以接受输入参数和返回输出结果。在JavaScript中,函数使用function关键字定义。函数可以提高程序的可读性和代码的复用性。当一个功能需要被多次使用时,可以将其封装为一个函数,以便于代码的管理和维护。 4. 第七章 问题:什么是DOM?它有什么作用? 答案:DOM(Document Object Model)是一种层次化的树形结构,它代表了网页中的元素和对象。在JavaScript中,可以使用DOM来访问和修改网页中的内容和样式。通过操作DOM,可以实现网页的动态效果和交互功能,例如点击按钮后弹出提示框,或者通过拖拽来改变元素大小和位置。 总的来说,JavaScript前端开发案例教程是一门非常实用的课程,它通过讲解基础概念和实例演示来帮助读者深入理解前端开发技术。同时,该课程还配有丰富的课后习题,可以帮助读者巩固和拓展知识。建议对前端开发感兴趣的人士可以试着学习一下。 ### 回答3: 此题所涉及的JavaScript前端开发案例教程课程是一系列讲解JavaScript基础、DOM操作、事件驱动、jQuery等的课程,难度较为适中。通过课程的学习,可以让我们对JavaScript的编写和DOM操作有更深的认识。同时,在完成课后答案的过程中,我们不仅可以通过实践的方式巩固所学知识,还可以培养解决问题的能力。 以下是一些常见的课后答案: 1. 在HTML文档中,如何引入JavaScript文件并使其执行? 答:可以通过<script>标签将JavaScript文件引入HTML文档中。例如: <script src="example.js"></script> 通过上述代码,可以将名为example.js的JavaScript文件引入到HTML文档中,并使其执行。 2. 如何通过JavaScript获取一个元素的各种属性? 答:可以使用DOM操作获取元素的各种属性。例如: var element = document.getElementById("example"); console.log(element.getAttribute("class")); 通过上述代码,可以获取ID为“example”的元素的class属性,并在控制台中输出。 3. 如何在JavaScript中实现事件绑定? 答:可以使用addEventListener方法来实现事件绑定。例如: var element = document.getElementById("example"); element.addEventListener("click", function() { console.log("Clicked"); }); 通过上述代码,可以将一个点击事件绑定到ID为“example”的元素上,当元素被点击时,控制台会输出“Clicked”。 通过课程的学习和完成课后答案锻炼自己的能力,可以让我们更好地掌握JavaScript前端开发的基础知识,为以后的开发工作打下坚实的基础。同时,在学习中要注重理解,并实践应用于实际网站开发中,才能真正体现课程的价值。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

齊 天 大 聖

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

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

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

打赏作者

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

抵扣说明:

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

余额充值