Web基础之JavaScript(三)

DOM+ 概念: 1)HTML DOM定义了用于HTML的一系列标准的对象,以及访问和处理HTML文档的标准方法 2)HTML标签对象化:将网页中的每个元素都看作一个对象。 3)常用HTML DOM对象:

Paste_Image.png

Select对象
1)Select对象代表HTML表单中的一个下拉列表,标签即表示一个Select对象。
2)常用属性:options(选项数组)、selectedIndex(索引从0开始)、size
3)常用方法:add(option)、remove(index)
4)事件:onchange

Option对象
1)Option对象代表HTML表单中下拉列表中的一个选项,标签表示一个Option对象
2)创建对象:var obj=new Option(text,value);
3)常用属性:index、text、value、selected

Table对象
1)Table对象代表一个HTML表格,

标签表示一个Table对象。
2)常用属性:rows(返回所有行数组)、cells(返回所有单元格数组)
3)常用方法:
—> table.insertRow(index):返回TableRow对象(插入新行)。
—> table.deleteRow(index):删除TableRow对象(删除行)。

TableRow对象
1)TableCell对象代表一个HTML表格单元格,标签表示一个TableCell对象。
2)常用属性:cellIndex、innerHTML、colSpan、rowSpan

window其他子对象(DHTML模型)
screen对象
1)包含有关客户端显示屏幕的信息(封装了屏幕相关的信息,供读取)。
2)常用属性:width/height、availWidth/availHeight、colorDepth(颜色位数)、pixelDepth(颜色位数)
浏览器窗口可视区域大小在各浏览器兼容的方法:

var w= document.documentElement.clientWidth  || document.body.clientWidth;
var h= document.documentElement.clientHeight  || document.body.clientHeight;

网页尺寸scrollHeight/offsetHeight在各浏览器兼容的方法:

var w=document.documentElement.scrollWidth || document.body.scrollWidth;
var h=document.documentElement.scrollHeight || document.body.scrollHeight;

history对象

1)包含用户在浏览器窗口中访问过的URL(封装了历史访问记录)。
2)length属性:浏览器历史列表中的URL数量。
3)方法:
—> history.back():单击后退按钮。
—> history.forward():单击向前按钮。
—> history.go(n):前进到历史列表中的第几个页面,1表示前进,-1表示后退。

location对象
1)包含有关当前URL的信息(地址栏),常用于获取和改变当前浏览的网址。
2)href属性:完整的url。
host:URL端口号; hostname:主机名; hash:从#开始的URL(锚)
pathname:路径部分; protocol:url协议; search:从?开的url(查询部分)
3)方法:
—> location.href=”url”:在当前页面打开,保留历史访问记录。
—> location.replace(“url”):在当前页面打开url,不保留历史访问记录。
—> location.reload():重新载入当前网址,等同于按刷新。
—> location.assign():加载新的文档
【注意:location.href=“url”也等同于location[“href”],但很少这么用;location=”url”好像也可以。】

navigator对象
1)包含浏览器软件的相关信息,常用于获取客户端和操作系统信息。
2)属性:appCodeName:浏览器代码名的字符串表示;
appName:浏览器名称; appVersion:浏览器平台和版本信息
platform:运行浏览器的操作系统平台;
userAgent:由客户机发送服务器的user-agent头部的值
【注意:可用window.userAgent.indexOf(“Firefox”)>-1来判断是否是某种浏览器】

事件
指DHTML对象在状态改变、鼠标操作或键盘操作时触发的动作。
1)事件的类别:
①鼠标事件:onclick/ondblclick/onmouseover/onmouseout ……
②键盘事件:onkeydown/onkeyup ……
③状态改变事件:onblur/onfocus/onchange/onload(body里)/onsubmit(form里) ……
④内容事件:onselect/onchange/
⑤body里内容加载 :onload/ 窗口关闭事件: window.onunload
2)定义事件:
①<标签里 onXXX=“代码”>:静态,写在html代码中
②obj.onclick = function(){}:动态,在JavaScript代码中定义
3)取消事件:onXXX = “return false;”
4)事件处理机制(冒泡机制):当处于DHTML对象模型底部的对象事件发生时,会依次激活上面对象定义的同类事件处理(即当有层次关系,且定义了相同事件时,会发生)。如:

<div style="width:100px;height:100px;border:1px solid red;" onclick="alert('3');">
          <p onclick="alert('2');">p text
          <input type="button" value="1" onclick="alert('1');" />
          </p>
<div>

Paste_Image.png
【注意:使用event对象可以禁止事件冒泡】

event对象
1)任何事件触发后将会产生一个event对象。
2)event对象记录事件发生时的鼠标位置、键盘按键状态和触发对象等信息(获得event对象后,可以获得相关信息)。
3)常用属性:clientX/clientY/cancelBubble=true(取消冒泡) ……
4)获取event对象:
—> IE/Chrome等浏览器:直接使用event关键字。
—> Firefox浏览器:在事件定义中,使用event关键字将事件对象作为参数传入方法。
【注意:在Firefox里直接在JavaScript中使用event,则不行!不认识!即只能在html页面获得event对象!其他浏览器既可以在JavaScript中获得,也可以在html页面中获得。】
5)获取事件源:
—> IE/Chrome等浏览器:event.srcElement
—> Firefox浏览器:event.target
【注意:两种获得事件源对象的方式最新的Chrome浏览器都支持。】

 <div onclick="func(event);">div text</div>
    <!--注意把event传入方法中!这样也可以在JavaScript中写复杂代码了!-->
    //如下操作可兼容各浏览器
    function func(e){ alert(e.clientX+":"+e.clientY);
                var obj=e.srcElement || e.target;
                alert(obj.nodeName);//DIV(大写的) }

面向对象基础
对象是一种特殊的数据类型,由属性和方法封装而成;
1)属性:对象名.属性名
2)方法:对象名.方法名()
3)定义对象:
① 创建对象的实例:使用Object创建,可以实现简单的封装,但不方便重用。

function TestObject(){ //创建对象,封装数据和行为
      var s=new Object();  s.name="mary";  s.age=18;  s.sing=function(){alert("hello");};
             //匿名方法,赋进去一个function,所以sing是个方法
      alert(s.name); alert(s.age); s.sing();

② 创建对象的模版:可重用的封装;定义构造函数,以创建自定义的对象。

—>语法:function ObjName(参数1,参数2,…){}
③ 使用JSON(相当于Java中的Map)

  function Student(n1,a1){//定义一个对象的模版:Student
        this.name=n1;//用了this关键字,就认为Student是一个类,而不是方法
        this.age=a1;  this.introduceSelf=function(){
       alert("i am "+this.name+", i am "+this.age +" year old");  }  }
   function testOwnObject(){//测试自定义的Student对象
     var p1=new Student("mary",18);
     var p2=new Student("join",20);
     alert(p1.name);  alert(p2.age);  p1.introduceSelf();   p2.introduceSelf();
  }

JSON( JavaScript Object Notation )
是一种轻量级的数据交换格式。使用名 / 值对的方式定义。名称需要使用 “” 引起来。多对定义之间使用 “ , ” 隔开。
 1)数据的传递:
① 数据在 JavaScript 范围里传递,使用 Object 创建对象或者创建对象的模版,两种都可用。 
 ② 数据传递到服务器端,采用一种通用的格式, Xml 或者 JSON 。
 2)操作:
 ① var name=obj[“name”];// 相当于 [obj.nam],取键所对应的值  
② obj[“score”]=99;// 放入一个新的键值对【注意:名称可以是属性,需要使用“”引起来;】

博客地址:Web基础之JavaScript(三)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
《Java程序设计》课程实验指导书程序代码(答案)(实验三),个人原创,仅供参考与交流。 希望多多交流,共同进步! 实验三 类和对象 一、实验目的: 掌握Java类的结构、类的定义、方法和属性的定义以及对象的实现; 掌握类及其成员修饰符的使用;掌握构造函数的使用;方法的参数传递和返回值的用法; 掌握类变量与实例变量,以及类方法与实例方法的区别。 、实验内容: 1.定义一个学生类(Student),属性有private的名字(name), public的年龄(age),专业(specialty)和封装name属性的方法:setName(),getName(),getspecialty()编写Application,创建一个学生对象,设置name和age属性值,然后调用一个方法(此方法将对象作为参数传递,在方法中打印出学生的名字name和年龄age)。(学生类仅包含静态成员变量和方法。) 2.定义一个类Point,代表一个点,public属性有x和y,方法有显示点坐标 show(),构造函数有两个参数分别给x,y赋值,在main方法中构造两个对象,再创建一方法(getMiddle)为取两个点构成线段的中点的坐标,参数为2个点对象,调用此方法后得到一个新的点,编写Application,显示该对象的坐标值。 3.定义一个复数(z=x+iy)类Complex,包含: 两个属性:实部x和虚部y 默认构造函数 Complex(),设置x=0,y=0 构造函数:Complex(int i,int j) 显示复数的方法:showComp()将其显示为如: 5+8i或5-8i 的形式。 求两个复数的和的方法:(参数是两个复数类对象,返回值是复数类对象)public Complex addComp(Complex C1,Complex C2) 求两个复数的差的方法:(参数是两个复数类对象,返回值是复数类对象)public Complex subComp(Complex C1,Complex C2) 求两个复数的乘积的方法:(参数是两个复数类对象,返回值是复数类对象,新复数实部=两复数实部乘积-两复数虚部乘积,新复数虚部=两复数实部与虚部交叉乘积之和,)public Complex multiComp(Complex C1,Complex C2) 比较两个复数是否相等的方法(参数是两个复数类对象,返回值是boolean类型)public boolean equalComp(Complex C1,Complex C2) 在Application中测试该类的方法,实部x和虚部y可由main方法参数提供输入。 、实验要求: 1. 正确地定义类、方法和属性; 2. 学会方法的参数传递和返回值的用法; 3. 熟练使用类及其成员修饰符 4.使用构造函数创建类的对象; 5. 类变量与实例变量,以及类方法与实例方法的使用 6.程序应包括各个被调用方法的执行结果的显示。 7.写出实验报告。要求记录编译和执行Java程序当中的系统错误信息提示,并给出解决办法。(附运行界面、源代码)。 四、实验步骤: 1.(第1题)定义一个学生类(Student)及它的属性和方法;定义主类和main(),在main()方法中创建学生对象,并通过对象调用它的方法setName(),getName(),输出学生的名字name和年龄age。 2. (第2题) 定义类Point及它的属性、方法和构造函数,定义主类和main(),在main()方法中创建两个坐标对象,,并通过对象调用getMiddle方法后得到一个新的点坐标,调用show()显示该对象的坐标值。 3. (第3题)定义一个复数(z=x+iy)类Complex,及它的属性、方法和构造函数;定义主类和main()方法,在main()方法中创建两个复数类Complex对象,并通过复数类对象调用它们的属性和方法,输出方法执行结果。 五、自做实验 1. 构造一个类来描述屏幕上的一个点,该类的构成包括点的x和y两个坐标,以及一些对点进行的操作,包括:取得点的坐标值,对点的坐标进行赋值,编写应用程序生成该类的对象并对其进行操作。 2. 编写实现:有一个角形类Triangle,成员变量有底边x和另一条边y,和两边的夹角a(0<a<180),a为静态成员,成员方法有两个:求面积s(无参数)和修改角度(参数为角度)。 3. 编写实现: 构造函数为 Triangle(int xx,int yy,int aa) 参数分别为x,y,a赋值 在main方法中构造两个对象,求出其面积,然后使用修改角度的方法,修改两边的夹角,再求出面积值。(提示:求高的方法 h=y*Math.sin(a) ) 注意:构造方法用于对成员变量初始化,无参数的构造方法将成员变量初始化为0值。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值