DOM 文档对象模型+倒计时

DOM 文档对象模型

DOM (document object model) 文档对象模型,它定义了操作文档对象的接口。

DOM 把一份html文档表示为一棵家谱树,使用parent(父), child(子), sibling(兄弟)等记号
来表明家庭成员之间的关系。

通过可编程的对象模型,JavaScript 获得了足够的能力来创建动态的 HTML。

  • JavaScript 能够改变页面中的所有 HTML 元素
  • JavaScript 能够改变页面中的所有 HTML 属性
  • JavaScript 能够改变页面中的所有 CSS 样式
  • JavaScript 能够对页面中的所有事件做出反应

节点例子:

<p title="这里显示提示信息">这是一个段落</p>

二、获取文档对象

1. querySelector()
HTML5新加入的方法,通过传入合法的CSS选择器,即可获取符合条件的第一个元素

例:document.querySelector(“#test”); //返回id为test的首个div

2. querySelectorAll()
HTML5新加入的方法,通过传入合法的CSS选择器,即可获取所有符合条件的元素,返回对象数组

例:document.querySelectorAll(‘div.foo’);//返回所有带foo类样式的div元素对象

要注意:使用这上面两个方法无法查找带伪类状态的元素,比如querySelector(‘:hover’)不会得到
期结果。

3.getElementById()

这个方法返回一个与给定id属性值的元素节点相对应的对象。

例:document.getElementById(‘box’);

4.getElementsByTagName()

这个方法返回一个对象数组。每个对象分别对应着文档里给定标签的一个元素。

例:document.getElementsByTagName(‘li’);

5.getElementsByName()
通过 name 获取一个对象数组

二、间接引用节点(扩展)

除了可以直接引用节点,还可以通过节点间的关系来引用相对节点。

1.引用子节点
每个节点都有一个childNodes集合属性,类型是数组对象,表示该节点的所有子节点
的集合。这些子节点按照其在文档中出现的顺序排列,因此可以通过索引来依次访问各个子节
点。

例: document.childNodes[0]; //引用文档的根节点
document.childNodes[0].childNodes[0] //引用<head>节点
document.childNodes[0].childNodes[1] //引用<body>节点

除了使用childNodes属性,还有两个属性可以用于引用子节点,分别是:
element.firstChild;
element.lastChild;

它们分别表示第一个子结点和最后一个子结点。

2.引用父节点
html的节点层次是一个树状结构,除了根节点外,每个节点都仅有一个父节点
,可以由parentNode属性来引用

element.parentNode; //引用父节点

3.引用兄弟节点
属于同一个文档层次的节点称为兄弟节点,有两个属性可以用于兄弟节点间
引用,分别是:
element.nextSibling; //引用下一个兄弟节点

element.previousSibling; //引用上一个兄弟节点

三、获取节点信息(扩展)

在获得一个节点的引用后,有一些方法可以获得该节点的信息。

1.nodeName 获取节点名称

语法: Node.nodeName;

不同的类型的节点,nodeName的返回值有所差异:

元素节点:返回标记名称;

属性节点:返回属性名称;

文本节点:返回文本 #text

2.nodeType 获取节点类型

语法: Node.nodeType;

元素节点:返回 1

属性节点:返回 2

文本节点:返回 3

3.nodeValue 获取节点的值

语法: Node.nodeValue;

元素节点:返回null

属性节点:返回节点值

文本节点:返回文本内容

四、处理属性节点

1. getAttribute 获取节点属性值

object.getAttribute(attribute)

例: var a = document.getElementsByTagName(‘a’);
for(var i=0; i<a.length; i++){
alert(a[i].getAttribute(‘title’));
}

2.setAttribute() 设置节点属性值

object.setAttribute(attribute, value)

例:var link = document.getElementById(‘link’);
link.setAttribute(‘title’, ‘链接提示信息’);

五、处理文本节点

1. node.innerHTML
获取该节点下的包含HTML标签的文本内容

例: var body = document.querySelector(‘body’);
alert(html.innerHTML);

2. node.textContent
获取该节点下的纯文本内容

例: var body = document.querySelector(‘body’);
alert(html.textContent);

六、因浏览器而异的空白节点(扩展)

ie浏览器和firefox浏览器对空白节点的处理不同,ie浏览器会忽略这些节点,而Firefox浏
览器则认可这些节点。

处理方法:
1.避免在文档中出现文本节点。

2.在使用前先删除其中的空白节点。
function cleanWhitespace(element){
for(var i=0; i < element.childNodes.length; i++){
var node = element.childNodes[i];
//判断是否是空白节点,如果是则删除该节点
if(node.nodeType == 3 && !/\S/.test(node.nodeValue){
node.parentNode.removeChild(node);
}
}

}

DOM 总结:

一份文档就是一棵树;

节点分为不同的类型,分别是:元素节点,属性节点,文本节点;

每个节点都是一个对象;

getElementById()方法将返回一个对象,该对象对应着文档里的一个元素节点;

getElementsByTagName()方法返回一个对象数组,它们分别对应着文档里的元素节点;

今天的一个作业:一个京东倒计时效果

效果图:

代码入下:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <style type="text/css">
            table{
                background: #f00;
                font-size: 24px;
            }
            td{
                width: 46px;
                height: 40px;
                text-align: center;
            }
            .img{
                background: url(img.gif);
            }
        </style>
    </head>
    <body>
        <table border="1">
            <tr>
                <td id="day" class="img"></td>
                <td>天</td>
                <td id="hour" class="img"></td>
                <td>时</td>
                <td id="min" class="img"></td>
                <td>分</td>
                <td id="sec" class="img"></td>
                <td>秒</td>
            </tr>
        </table>
        <script type="text/javascript">
            var setin=setInterval(function(){
                //定义终止时间
                var endtime = new Date(‘September 9, 2016 12:00:00‘),
                //当前时间
                nowtime = new Date(),
                //计算终止时间到当前时间的时间差,毫秒数
                second=parseInt((endtime.getTime()-nowtime.getTime())/1000);
                //当时间差小于0的时候,定时器停止循环
                //或者可以写成:
                //if(second<0){second=0;}
                if(second<=0){
                    clearInterval(setin);
                }
                //计算天,小时,分钟,秒
                var d=parseInt((second/3600)/24),
                h=parseInt((second/3600)%24),
                m=parseInt((second/60)%60),
                s=parseInt(second%60);
                //当时间为个位数的时候,前面添加一个0
                if(d<10){
                    d="0"+d;
                };
                if(h<10){
                    h="0"+h;
                };
                if(m<10){
                    m="0"+m;
                }
                if(s<10){
                    s="0"+s;
                }
                document.getElementById("day").innerHTML=d;
                document.getElementById("hour").innerHTML=h;
                document.getElementById("min").innerHTML=m;
                document.getElementById("sec").innerHTML=s;
            },1000);
        </script>
    </body>
</html>
时间: 2024-10-26 20:50:14

DOM 文档对象模型+倒计时的相关文章

DOM文档对象模型 | Javascript

# 在学过python这样的面向对象编程语言之后,可以用其思维方式来学习Javascript; # DOM文档对象模型就相当于一个包,或者模块,定义了许多类,对网页做操作; # Document类型 # document对象时HTMLDocument的一个实例; # 1.两种访问子节点的快捷方式: # ①documentElement # var html = document.documentElement直接取得<html>的引用; # ②childNodes列表访问文档元素 # 附:do

JavaScript(三、DOM文档对象模型)

一.什么是DOM DOM 是 Document Object Model(文档对象模型)的缩写. DOM 是 W3C(万维网联盟)的标准. DOM 定义了访问 HTML 和 XML 文档的标准: "W3C 文档对象模型 (DOM) 是中立于平台和语言的接口,它允许程序和脚本动态地访问和更新文档的内容.结构和样式." W3C DOM 标准被分为 3 个不同的部分: 核心 DOM - 针对任何结构化文档的标准模型 XML DOM - 针对 XML 文档的标准模型 HTML DOM - 针对

dom 文档对象模型 有关的知识

本文非本人原创,只是感觉对自己有用特拿来学习,特此声明. document.createElement()是在对象中创建一个对象,要与appendChild() 或 insertBefore()方法联合使用.其中,appendChild() 方法在节点的子节点列表末添加新的子节点.insertBefore() 方法在节点的子节点列表任意位置插入新的节点. 下面,举例说明document.createElement()的用法.<div id="board"></div&

JavaScript学习笔记——5.DOM(文档对象模型)

1.获得对象方式 方法一 document.getElementsByTagName("div"); document.getElementById("head"); document.getElementsByName("username"); 方法二 //通过数组 document.all //存在为IE,不存在为FF document.body document.forms document.images document.links 2.

JavaScript笔记03——文档对象模型(Document Object Model,简称DOM)

Dom技术使得用户页面可以动态地变化,如可以动态地显示或隐藏一个元素,改变它们的属性,增加一个元素等,Dom技术使得页面的交互性大大地增强.[1] DOM实际上是以面向对象方式描述的文档模型.DOM定义了表示和修改文档所需的对象.这些对象的行为和属性以及这些对象之间的关系.可以把DOM认为是页面上数据和结构的一个树形表示,不过页面当然可能并不是以这种树的方式具体实现. 通过 JavaScript,您可以重构整个 HTML 文档.您可以添加.移除.改变或重排页面上的项目. 要改变页面的某个东西,J

JS DOM(文档对象模型)与BOM(浏览器对象模型)

在JS中,对DOM(Document Object Model)对象和BOM(Browser Object Model )对象的操作是非常重要的内容.DOM主要包括HTML文档的属性和方法,像对HTML节点的操作,CSS的操作和HTML事件的监听和处理.BOM不要包括浏览器相关的一些属性和方法. DOM知识点1.改变页面的元素和属性a.获取元素的方法:document.getElementById()document.getElementsByTagName()document.getEleme

DOM(文档对象模型)改变HTML

声明:因本人近期对前端尤其的感兴趣,故一直在自学.而最近这几天处于初学期,估计前端的门槛都还没踩到,这会仅是对学习过程的一个记录,如有错误,请指出.万一你不幸被我误导了,勿怪勿怪,我也不是故意的. DOM(文档对象模型)改变HTML (1)查找HTML元素的常用方法: ①  id: var x=document.getElementById("intro");  ②  元素标签的名字: var x=document.getElementById("main"); v

DOM(文档对象模型)

1.定义: DOM是Document Object Model文档对象模型的缩写.是针对HTML和XML文档的一个API,通过DOM可以去改变文档. 例如:我们有一段HTML,那么如何访问第二层第一个节点呢,如何把最后一个节点移动到第一个节点上面去呢? DOM就是定义了如果做类似操作,那么应该怎么做的标准.比如用getElementById来访问节点,用insertBefore来插入节点. 当浏览器载入HTML时,会生成相应的DOM树. 简而言之,DOM可以理解为一个访问或操作HTML各种标签的

DOM:文档对象模型 --树模型 文档:标签文档,对象:文档中每个元素对象,模型:抽象化的东西

DOM:文档对象模型 --树模型文档:标签文档,对象:文档中每个元素对象,模型:抽象化的东西 一:window: 属性(值或者子对象):opener:打开当前窗口的源窗口,如果当前窗口是首次启动浏览器打开的,则opener是null,可以利用这个属性来关闭源窗口. 方法(函数):事件(事先设置好的程序,被触发): 1.window.open("第一部分","第二部分","第三部分","第四部分"): 特征参数: 第一部分:写要