1、DOM的基本概念

 htmlDOM是一种面向对象的树的模型,它包含html中的所有元素;通过html可以找到所有包含在dom中的元素。

DOM是文档对象模型,这种模型为树模型;文档是指标签文档;对象是指文档中每个元素;模型是指抽象化的东西。

2、Windows对象操作

一、属性和方法

属性(值或者子对象):

opener:打开当前窗口的源窗口,如果当前窗口是首次启动浏览器打开的,则opener是null。

dialogArgument:对话框返回值。

子对象:history,location,document,status,menubar,toolbar等。

方法(函数):事件(事先设置好的程序,被触发)。

二、Window.open("第一部分","第二部分","第三部分","第四部分")

Window.open的特征参数:

第一部分:写页面地址。

第二部分:_blank 打开的方式,在新窗口还是自身的窗口。

第三部分:控制打开的窗口格式,可以写多个,用空格隔开如下:

toolbar=no新打开的窗口无工具条 ;

menubar=no无菜单栏 status=no无状态栏 ;

width=100 height=100 宽度高度;

left=100 打开的窗口距离左边多少距离;

resizable=no窗口大小不可调 ;

scrollbars=yes 出现滚动条;

location=yes 有地址栏;

Window.open也有返回值,它的返回值是:新打开的窗口对象。

例如:

最简单的打开窗口:window.open("Untitled-6.html");

打开一个窗口并保存在变量中:var w= window.open();

可以将打开的多个窗口保存在数组w里:

function openW()

{

w[i++]=window.open();

}

三、window.close():关闭当前窗口;

w.close():关闭保存在变量w中的那个窗口;

关闭多个子窗口:先将打开的窗口存入数组内,利用循环将其挨个关闭;

关闭打开当前窗口的源窗口: window.opener.close();

四、间隔与延迟

间隔执行一段代码(函数):window.setInterval("要执行的代码",间隔的毫秒数)

清除间隔执行:window.clearInterval(间隔的id); 循环一次之后用来清除隔执行的代码

延迟一段时间执行某一段代码(函数):window.setTimeout("要执行的代码",延迟的毫秒数)(比较常用)

清除延迟:window.clearTimeout(延迟的id);清除setTimeout

五、调整页面

window.navigate("url") 跳转至目标页面,在谷歌浏览器下有bug;

window.moveTo(x,y) 移动页面至某一位置,位置由x和y决定;

window.resizeTo(宽,高) 调整页面的宽度和高度;

window.scrollTo(x,y)滚动页面至哪里,y代表纵向滚动。

六、模态对话框和非模态对话框

模态对话框(Modal Dialogue Box),是指在用户想要对对话框以外的应用程序进行操作时,必须首先对该对话框进行响应。如单击【确定】或【取消】按钮等将该对话框关闭,它和非模态对话框都是永远置顶的,它们的区别在于当对话框打开时,是否允许用户进行其他对象的操作。

打开模态对话框:window.showModalDialog("url","向目标对话框传的值","窗口特征参数");

特征参数:用分号隔开,像素大小用px。dialogHeight,dialogWidth,center,等

打开非模态对话框:window.showModelessDialog("url","向目标对话框传的值","窗口特征参数")

var a = window.dialogArgument;可以用一个参数来获取模态或非模态对话框传递的值。

1、Windows.history对象

window.history.back();页面进行后退;

window.history.forward();页面前进;

window.history.go(n); n如果是正数则代表前进n个页面,n如果是负数则代表后退n个页面,一般常用这一种。

2、Window.location对象

location地址栏

var s = window.location.href;获取当前页面的地址

window.location.href="http://www.baidu.com";修改页面地址,会跳转页面

window.location.hostname: 主机名,域名,网站名,可用变量接收

window.location.pathname: 路径名,可用变量接收

3、Window.status对象

status状态栏,可以给状态栏添加要显示的文字

window.status="要在状态栏显示的内容";设置状态栏文字

例如:

  1. function s()
  1. {
  1.     window.status = "向前走 就这么走";
  1. }

  1.  

4、Window.document对象

一、找到元素:

docunment.getElementById("id");根据id找,最多找一个;
    var a =docunment.getElementById("id");将找到的元素放在变量中;

docunment.getElementByName("name");根据name找,找出来的是数组;//可利用数组特性取值,赋值
    docunment.getElementByTagName("name");根据标签名找,找出来的是数组;//可利用数组特性取值,赋值
    docunment.getElementByClassName("name") 根据classname找,找出来的是数组;(调用的时候与数组方式相同a[0]表示第一个)

二、操作内容:

 1. 非表单元素:

1)获取内容:

alert(a.innerHTML);标签里的html代码和文字都获取了

如:body中有这么一个div:

  1. <div id="me"><b>试试吧</b></div>

在script中用innerHTML获取div中的内容:

  1.     var a= document.getElementById("me");
  1.     alert(a.innerHTML);

结果如下图:

alert(a.innerText);只取里面的文字
    alert(a.outHTML);包括标签本身的内容(简单了解)

2)设置内容:

a.innerHTML = "<font color=red >hello world </font>";

如果用设置内容代码结果如下,div中的内容被替换了:

a.innerText会将赋的东西原样呈现

清空内容:赋值个空字符串

2. 表单元素:

1)获取内容,有两种获取方式:

a、(单标签<input/> )

var t = document.f1.t1; form表单ID为f1里面的ID为t1的input;
 var t = document.getElementById("id"); 直接用ID获取。

alert(t.value); 获取input中的value值;

b、<textarea> 这里的值 </textarea>
    alert(t.innerHTML); 获取<textarea> 这里的值 </textarea>;//与非表单元素获取方式相同

c、<onselect><onselect>

2)设置内容: t.value="内容改变";

3. 一个小知识点:

<a href="www.baidu.com" onclick ="return flase">转向百度</a> ;加了return flase则不会跳转,默认是return true会跳转。按钮也一样,如果按钮中设置return flase 则不会进行提交,利用这个可以对提交跳转进行控制。

三、操作属性

首先利用元素的ID找到该元素,存于一个变量中:

var a = document.getElementById("id");

然后可以对该元素的属性进行操作:

a.setAttribute("属性名","属性值"); 设置一个属性,添加或更改都可以;

a.getAttribute("属性名");获取属性的值;

a.removeAttribute("属性名");移除一个属性。

例子1:做一个问题,如果输入的答案正确则弹出正确,错误弹出错误;

这里在text里面写了一个daan属性,里面存了答案的值,点击检查答案的时候cheak输入的内容和答案是否一样:

回答正确时的结果:

例子2: 同意按钮,倒计时10秒,同意按钮变为可提交的,这里用了操作属性:disable,来改变按钮的状态,当disable=”disable”时按钮不可用。

  1. body中的代码:
  2.  
  3. <form><input type="submit" id="b1" name="b1" value="同意(9)" disabled="disabled" /></form>
  4. JS中的代码:
  5.  
  6. var n=10;var a= document.getElementById("b1");function bian()
  7. {
  8. n--;
  9. if(n==0)
  10. {
  11. a.removeAttribute("disabled");
  12. a.value="同意";
  13. return;
  14. }
  15. else
  16. {
  17. a.value= "同意("+n+")";
  18. window.setTimeout("bian()",1000);
  19. }
  20. }
  21. window.setTimeout("bian()",1000);

运行的结果:

四、操作样式

首先利用元素的ID找到该元素,存于一个变量中:

var a = document.getElementById("id");

然后可以对该元素的属性进行操作:

a.style.样式="" ; 操作此ID样式的属性。

样式为CSS中的样式,所有的样式都可以用代码进行操作。

document.body.stye.backgroundColor="颜色"; 整个窗口的背景色。

操作样式的class:a.className="样式表中的classname" 操作一批样式

例子1:展示图片的自动和手动切换;

  1. Body中的代码,做一个有背景图片的div和两侧的控制对象:
  2.  
  3. </div>
  4. <div id="tuijian" style=" background-image:url(imges/tj1.jpg);">
  5. <div class="pages" id="p1" onclick="dodo(-1)"></div>
  6. <div class="pages" id="p2" onclick="dodo(1)"></div>
  7. </div>
  8. 样式表中的代码:
  9.  
  10. <style type="text/css">
  11. *{
  12. margin:0px auto;
  13. padding:0px;
  14. font-family:"微软雅黑";
  15. }
  16.  
  17. #tuijian
  18. {
  19.  
  20. width:760px;
  21. height:350px;
  22. background-repeat:no-repeat;
  23. }
  24.  
  25. .pages
  26. {
  27. top:200px;
  28. background-color:#000;
  29. background-position:center;
  30. background-repeat:no-repeat;
  31. opacity: 0.4;
  32. width: 30px;
  33. height:60px;
  34. }
  35.  
  36. #p1
  37. {
  38.  
  39. background-image:url(imges/prev.png);
  40. float:left;
  41. margin:150px 0px 0px 10px;
  42. }
  43. #p2{
  44. background-image:url(imges/next.png);
  45. float:right;
  46. margin:150px 10px 0px 0px;
  47. }
  48. </style>
  49. JS中的代码,这里主要是每隔3秒中调用一下huan()函数,来将背景图片的样式修改,在点击左右切换的时候变为手动切换,自动切换停止:
  50.  
  51. <script language="javascript">var jpg =new Array();
  52. jpg[0]="url(imges/tj1.jpg)";
  53. jpg[1]="url(imges/tj2.jpg)";
  54. jpg[2]="url(imges/tj3.jpg)";var tjimg = document.getElementById("tuijian");var xb=0;var n=0;
  55. function huan()
  56. {
  57. xb++;
  58. if(xb == jpg.length)
  59. {
  60. xb=0;
  61. }
  62.  
  63. tjimg.style.backgroundImage=jpg[xb];
  64. if(n==0)
  65. {
  66. var id = window.setTimeout("huan()",3000);
  67. }
  68.  
  69. }function dodo(m)
  70. {
  71. n=1;
  72. xb = xb+m;
  73. if(xb < 0)
  74. {
  75. xb = jpg.length-1;
  76. }
  77. else if(xb >= jpg.length)
  78. {
  79. xb = 0;
  80. }
  81. tjimg.style.backgroundImage=jpg[xb];
  82. }
  83. window.setTimeout("huan()",3000);</script>

效果如下

网页制作之JavaScript部分 2 - DOM操作的更多相关文章

  1. 6、网页制作Dreamweaver(HTML结构--dom操作)

    一.基本语法:数据类型(字符串,小数,整数,布尔,时间) var, var s = "3.14"; var n = parseFloat(s); ; s += 5; var d = ...

  2. javascript教程2:---DOM操作

    1.DOM 简介 当页面加载时,浏览器会创建页面的文档对象模型(Document Object Model).文档对象模型定义访问和处理 HTML 文档的标准方法.DOM 将 HTML 文档呈现为带有 ...

  3. 原生JavaScript常用的DOM操作

    之前项目一直都是用JQuery或者Vue来做的,确实好用,毕竟帮我们解决了很多浏览器兼容问题,但是后面发现大公司面试题都是要原生Javascript来做,然后我就一脸懵逼哈哈哈,毕竟大公司需要的框架或 ...

  4. JavaScript基础:DOM操作详解

    本文最初发表于博客园,并在GitHub上持续更新前端的系列文章.欢迎在GitHub上关注我,一起入门和进阶前端. 以下是正文. 前言 JavaScript的组成 JavaScript基础分为三个部分: ...

  5. JavaScript常见原生DOM操作API总结

    [TOC] 最近面试的时候被这个问题给卡了,所以抽时间好好复习一下. 几种对象 Node Node是一个接口,中文叫节点,很多类型的DOM元素都是继承于它,都共享着相同的基本属性和方法.常见的Node ...

  6. JavaScript里面之dom操作

    1.dom之选择元素 <!DOCTYPE html> <html lang="en"> <head> <meta charset=&quo ...

  7. 网页制作之JavaScript部分3--事件及事件传输方式(函数调用 练习题 )重要---持续更新中

    一. 事件:说白了就是调用函数的一种方式.它包括:事件源.事件数据.事件处理程序. JS事件 1.js事件通常和函数结合来使用,这样可以通过发生的事件来驱动函数的执行,从而引起html出现不同的效果. ...

  8. 网页制作之JavaScript部分 1 - 语法(复制教材内容)

    一.简介 1.JavaScript它是个什么东西? 它是个脚本语言,需要有宿主文件,他的宿主文件是html文件. 2.它与Java有什么关系? 没有什么直接联系,java是Sun公司(已经没有了,被O ...

  9. 前端JavaScript(3)-关于DOM操作的相关案例,JS中的面向对象、定时器、BOM、位置信息

    小例子: 京东购物车 京东购物车效果: 实现原理: 用2个盒子,就可以完整效果. 先让上面的小盒子向下移动1px,此时就出现了压盖效果.小盒子设置z-index压盖大盒子,将小盒子的下边框去掉,就可以 ...

随机推荐

  1. 【Java线程】Lock、Condition

    http://www.infoq.com/cn/articles/java-memory-model-5  深入理解Java内存模型(五)——锁 http://www.ibm.com/develope ...

  2. 记一次排查log4net 不输出日志的解决过程

    最近发现log4net 不输出日志了,重点排查几个地方,发现都没有问题. 1.[assembly: log4net.Config.XmlConfigurator(ConfigFile = " ...

  3. Struts2详解

     struts2框架是SSH框架集中的框架之一,是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器层(Controller)来建立 ...

  4. Arduino M0 的一个坑(2015-12-25)

    前几天收到 Arduino M0,试各项功能都正常,可就是串口监视器/串口助手不能显示程序里打印的输出,好生奇怪,各种换波特率各种PC串口程序换着试,资料不多,官方资料也只说到 Serial1 用于 ...

  5. win7 64下安装mysql-python报错的解决办法

    最近要使用django进行项目开发,需要使用mysql-python模块. 在本地搭建环境安装的时候却出现报错,Unable to find vcvarsall.bat  在网上找了很多资料,发现是w ...

  6. IT资源专业搜索-www.easysoo.cn

    创始人:samrthhl 时间:2015-11-8 关于易搜 易搜(www.easysoo.cn)是一个面向IT开发从业人员的专业资源搜索站点,它将全球的知名博客论坛.专业IT行业站点.知名咨询机构和 ...

  7. android编程——百度地图初探

    项目需要,花了一天时间研究了下百度地图的API,其实看起来可能会有点困难,但是将它的DEMO跑起来之后一切都迎刃而解的样子了.百度方面讲地图的接口封装的挺不错的,而且现在能够提供的地图的服务也有将近十 ...

  8. UVA 10652 Board Wrapping(凸包)

    The small sawmill in Mission, British Columbia, hasdeveloped a brand new way of packaging boards for ...

  9. POJ 1410 Intersection(线段相交&amp;&amp;推断点在矩形内&amp;&amp;坑爹)

    Intersection 大意:给你一条线段,给你一个矩形,问是否相交. 相交:线段全然在矩形内部算相交:线段与矩形随意一条边不规范相交算相交. 思路:知道详细的相交规则之后题事实上是不难的,可是还有 ...

  10. DataGridView的Validating事件注册后删除操作的处理

    我们在处理DataGridView必填项判断时,一般使用DataGridView的RowValidating事件判断,具体代码如下: protected override void OnRowVali ...