第3部分 JavaScript的DOM操作

1、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;可以用一个参数来获取模态或非模态对话框传递的值。

3、Window.history对象

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

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

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

4、Window.location对象

location地址栏

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

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

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

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

5、Window.status对象

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

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

例如:

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

6、Window.document对象

一、找到元素

docunment.getElementById("id");根据id找,最多找一个;
    var a
=docunment.getElementById("id");将找到的元素放在变量中;
   
docunment.getElementByName("name");根据name找,找出来的是数组;
   
docunment.getElementByTagName("name");根据标签名找,找出来的是数组;
    docunment.getElementByClassName("name")
根据classname找,找出来的是数组;

二、操作内容:

1. 非表单元素:

1)获取内容:

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

如:body中有这么一个div:

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

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

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

结果如下图:

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

2)设置内容:

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

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

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

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

2. 表单元素:

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

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

alert(t.value); 获取input中的value值;
    alert(t.innerHTML); 获取<textarea> 这里的值 </textarea>;

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输入的内容和答案是否一样:

Body中代码:

<form>中华民国成立于哪一年?<input type="text" daan="1912年" value="" id="t1" name="t1" /><input type="button" onclick="check()" id="t2" name="t2" value="检查答案" /></form>

JS中的代码:

function check()
{
    var a=document.getElementById("t1");
    var a1=a.value;
    var a2=a.getAttribute("daan");
    if(a1==a2)
    {
        alert("恭喜你答对了!");
    }
    else
    {
        alert("笨蛋!");
    }
}

回答正确时的结果:

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

body中的代码:

<form><input type="submit" id="b1" name="b1" value="同意(9)" disabled="disabled" /></form>

JS中的代码:

var n=10;var a= document.getElementById("b1");function bian()
{
    n--;
    if(n==0)
    {
        a.removeAttribute("disabled");
        a.value="同意";
        return;
    }
    else
    {
        a.value= "同意("+n+")";
        window.setTimeout("bian()",1000);
    }
}
window.setTimeout("bian()",1000);

运行的结果:

四、操作样式

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

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

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

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

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

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

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

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

Body中的代码,做一个有背景图片的div和两侧的控制对象:

 </div>
            <div id="tuijian" style=" background-image:url(imges/tj1.jpg);">
            <div class="pages" id="p1" onclick="dodo(-1)"></div>
            <div class="pages" id="p2" onclick="dodo(1)"></div>
        </div>

样式表中的代码:

<style type="text/css">
*{
    margin:0px auto;
    padding:0px;
    font-family:"微软雅黑";
}
#tuijian{
    width:760px;
    height:350px;
    background-repeat:no-repeat;
}
.pages{
    top:200px;
    background-color:#000;
    background-position:center;
    background-repeat:no-repeat;
    opacity: 0.4;
    width: 30px;
    height:60px;
    
}
#p1{
    background-image:url(imges/prev.png);
    float:left;
    margin:150px 0px 0px 10px;
    
}
#p2{
    background-image:url(imges/next.png);
    float:right;
    margin:150px 10px 0px 0px;
}
</style>

JS中的代码,这里主要是每隔3秒中调用一下huan()函数,来将背景图片的样式修改,在点击左右切换的时候变为手动切换,自动切换停止:

<script language="javascript">var jpg =new Array();
jpg[0]="url(imges/tj1.jpg)";
jpg[1]="url(imges/tj2.jpg)";
jpg[2]="url(imges/tj3.jpg)";var tjimg = document.getElementById("tuijian");var xb=0;var n=0;
function huan()
{
    xb++;
    if(xb == jpg.length)
    {
        xb=0;
    }
    
    tjimg.style.backgroundImage=jpg[xb];
    if(n==0)
    {
    var id = window.setTimeout("huan()",3000);
    }
    
    
}function dodo(m)
{   
    n=1;
    xb = xb+m;
    if(xb < 0)
    {
        xb = jpg.length-1;
    }
    else if(xb >= jpg.length)
    {
        xb = 0;
    }
    tjimg.style.backgroundImage=jpg[xb];
}
window.setTimeout("huan()",3000);</script>

效果如下图:

五、相关元素操作:

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

var b = a.nextSibling,找a的下一个同辈元素,注意包含空格;

var b = a.previousSibling,找a的上一个同辈元素,注意包含空格;

var b = a.parentNode,找a的上一级父级元素;

var b = a.childNodes,找出来的是数组,找a的下一级子元素;

var b = a.firstChild,第一个子元素,lastChild最后一个,childNodes[n]找第几个;

alert(nodes[i] instanceof Text); 判断是不是文本,是返回true,不是返回flase,用if判断它的值是不是flase,可以去除空格。

六、元素的创建、添加、删除:

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

var obj = document.createElement("标签名");创建一个元素 obj.innerHTML = "hello world";添加的时候首先需要创建出一个元素。

a.appendChild(obj);向a中添加一个子元素。

a.removeChild(obj);删除一个子元素。

列表中a.selectIndex:选中的是第几个;a.options[a.selectIndex]按下标取出第几个option对象

七、字符串的操作:

var s = new String(); 或var s ="aaaa";

var s = "hello world";

alert(s.toLowerCase());转小写 toUpperCase() 转大写

alert(s.substring(3,8));从第三个位置截取到第八个位置

alert(s.substr(3,8));从第三个位置开始截取,截取八个字符长度,不写后面的数字是截到最后.

s.split('');将字符换按照指定的字符拆开

s.length是属性

s.indexOf("world");world在字符串中第一次出现的位置,没有返回-1

s.lastIndexOf("o");o在字符串中最后一次出现的位置

八、日期时间的操作

var d = new Date();当前时间

var d = new Date(1999,3,2);定义一个时间,1999年4月2日,3要加1

d.getFullYear:取年份; d.getMonth():取月份,取出来的少1; d.getDate():取天; d.getDay():取星期几

d.getHours():取小时; d.getMinutes():取分钟;d.getSeconds():取秒

d.setFullYear():设置年份,设置月份的时候注意加1。

九、数学函数的操作

Math.ceil();大于当前小数的最小整数

Math.floor();小鱼当前小数的最大整数

Math.sqrt();开平方

Math.round();四舍五入

Math.random();随机数,0-1之间

十、小知识点

外面双引号,里面的双引号改为单引号;

在div里面行高设置和整个外面高度一样,才能用竖直居中,居中是行居中。

文本框取出来的值是字符串,需要用parseint()转化为数字

s.match(reg); s代表一个字符串,reg代表一个字符串,两者进行匹配,如果两个字符串不匹配,返回一个null。

网站开发综合技术 三 JavaScript的DOM操作的更多相关文章

  1. 网站开发综合技术 一 JavaScript简介 二JavaScript语法

    第1部分 JavaScript简介 1.JavaScript它是个什么东西? 它是个脚本语言,需要有宿主文件,他的宿主文件是html文件. 2.它与Java有什么关系? 没有什么直接联系,java是S ...

  2. 网站开发综合技术 HTML

    HTML            内容(Hyper Text Markup Language,超文本标记语言) CSS             网页美化 Javascript      脚本语言 第一部 ...

  3. 网站开发综合技术 第二部分 CSS样式表

    第2部分 CSS样式表 CSS(Cascading Style Sheets,层叠样式表),作用是美化HTML网页. /*注释*/    注释语法 2.1.样式表的基本概念 2.1.1.样式表分类 1 ...

  4. 网站开发综合技术 第一部分HTML 1.3.2表单

    <form id="" name="" method="post/get" action="负责处理的服务端"&g ...

  5. javascript dom编程艺术笔记第三章:DOM操作的5个基本方法

    JavaScript的 DOM操作,主要是对DOM这三个字母中D.O.M的操作.D代表的是document(文档),即我们可以使用javascript对文档进行操作,O代表的是object(对象),对 ...

  6. 第一百一十六节,JavaScript,DOM操作样式

    JavaScript,DOM操作样式 一.操作样式 CSS作为(X)HTML的辅助,可以增强页面的显示效果.但不是每个浏览器都能支持最新的CSS能力.CSS的能力和DOM级别密切相关,所以我们有必要检 ...

  7. Python之路day13 web 前端(JavaScript,DOM操作)

    参考链接:http://www.cnblogs.com/wupeiqi/articles/5433893.html day13 1. CSS示例 2. JavaScript 3. DOM操作 上节内容 ...

  8. 第一百一十五节,JavaScript,DOM操作表格

    JavaScript,DOM操作表格 学习要点: 1.操作表格 DOM在操作生成HTML上,还是比较简明的.不过,由于浏览器总是存在兼容和陷阱,导致最终的操作就不是那么简单方便了.本章主要了解一下DO ...

  9. ASP.NET MVC 网站开发总结(三) ——图片截图上传

    本着简洁直接,我们就直奔主题吧,这里需要使用到一个网页在线截图插件imgareaselect(请自行下载). 前台页面: <!DOCTYPE html> <html> < ...

随机推荐

  1. <项目><day11>查看用户浏览过的商品

    <项目>查看用户浏览过的商品 1.创建一个entity包储存实体对象 1.1创建一个Product的类存储实体对象 对象具有以下属性,并添加set和get方法,含参和不含参的构造方法,to ...

  2. lambda简单记录

    lambda表达式对集合的一些操作,持续记录一下新的用法 List<Integer> list = new ArrayList<>(); list.add(1); list.a ...

  3. Redis Cluster集群搭建后,客户端的连接研究(Spring/Jedis)(待实践)

    说明:无论是否已经搭建好集群,还是使用什么样的客户端去连接,都是必须把全部IP列表集成进去,然后随机往其中一个IP写. 这样做的好处: 1.随机IP写入之后,Redis Cluster代理层会自动根据 ...

  4. dstat用法;利用awk求dstat所有列每列的和;linux系统监控

    安装:yum install -y dstat dstat命令是一个用来替换vmstat.iostat.netstat.nfsstat和ifstat这些命令的工具,是一个全能系统信息统计工具.与sys ...

  5. NYOJ 题目42 一笔画问题(欧拉图)

    一笔画问题 时间限制:3000 ms  |  内存限制:65535 KB 难度:4 描写叙述 zyc从小就比較喜欢玩一些小游戏.当中就包含画一笔画.他想请你帮他写一个程序.推断一个图是否可以用一笔画下 ...

  6. centos 建立Clamav自动扫描脚本

    vim autoscan.sh #建立自动扫描脚本 #!/bin/bash PATH=/usr/bin:/bin CLAMSCANTMP=`mktemp` clamdscan --recursive ...

  7. iOS_开发中遇到的那些问题_1

    [自编号:60][AutoLayout中,怎样让ImageView保持固定的宽高比?比如1:1] 先将imageViewframe手动写成:宽20,高20,再勾选Aspect Ratio加入宽高比约束 ...

  8. 【Akka】Actor模型探索

    Akka是什么 Akka就是为了改变编写高容错性和强可扩展性的并发程序而生的.通过使用Actor模型我们提升了抽象级别,为构建正确的可扩展并发应用提供了一个更好的平台.在容错性方面我们採取了" ...

  9. android意图传參数(四)

    一.依照向导创建一个project,layout的activity_main.xml文件内容例如以下: <RelativeLayout xmlns:android="http://sc ...

  10. 【剑指Offer学习】【面试题65:滑动窗体的最大值】

    题目:给定一个数组和滑动窗体的大小,请找出全部滑动窗体里的最大值. 举例说明 比如,假设输入数组{2,3,4,2,6,2,5,1}及滑动窗体的大小.那么一共存在6个滑动窗体,它们的最大值分别为{4,4 ...