DOM第二章 操作HTML

第二章 DOM操作HTML

第一讲.DOM简介

DOM:文档对象模型

JS通过DOM来对HTML文档,只要理解了DOM就可以随心所欲的操作web页面

文档:一个网页就是一个文档

对象:将网页的每一个部分(或大或小)都转化成对象

模型:使用模型来表示对象之间的关系,这样方便我们获取对象

<html>
    <head>
        <title>网页的标题</title>
    </head>
    <body>
        <a href='1.html'>超链接</a>
    </body>
</html>

则这个文档的模型为:

文档->html->head->title->文本节点

​ ->body->a->文本节点

模型可以体现出节点与节点的关系

节点:是网页的基本组成部分,网页中的每一个部分都可以称为一个节点

常用的节点分为四类:

  1. 文档节点:整个html网页

    节点名:document 节点类型:9 节点值:null

  2. 元素节点:html文档中的标签

    节点名:标签名 节点类型:1 节点值:null

  3. 属性节点:元素的属性 用的不多

    节点名:属性名 节点类型:2 节点值:属性值

  4. 文本节点:html标签中的文本内容

    节点名:text 节点类型:3 节点值:文本内容

浏览器为我们提供了文档节点对象,可以在页面中使用,它代表的是整个网页

console.log(document);

获取对象的方法:

<button id='a'>我是按钮</button>
var btn=document.getElementById('a');

修改按钮的文字:

.innerHTML可以获取到节点内部的html代码

btn.innerHTML="I'm button";

第二讲.事件简介

事件:文档和浏览器窗口发生的一些特定的交互瞬间,是用户和浏览器的交互行为

js和html的交互是通过事件实现的

处理事件:在事件对应的属性中,设置一些js代码,这样在事件被触发时,js代码将会执行

<button id='a' onclick="alert('讨厌')">我是按钮</button>

这种写法称为结构和行为耦合,不推荐使用

可以为按钮的对应事件绑定一个处理函数,然后以函数的形式响应事件.这是推荐使用的方式

var btn=document.getElementById('a');
btn.onclick=function(){
    alert('你还点');
}

当事件被触发时,其对应的函数将被调用.

像这种为单击事件绑定的函数,称为单机响应函数

浏览器在加载页面时,是自上向下加载,读取一行就运行一行,如果将script,则代码执行时,页面还没有加载

因此要将js代码写在最后.但是如果就是想写在上面

onload事件在页面加载完成之后才能出发

要为window绑定onload事件

window.onload=function(){
    alert('hello');
}

这样这个函数只有在页面加载完成之后才会执行

因此,如果想把js写在head中,就要将代码统一写到上面的函数里,这样可以确保代码执行时,所有的dom对象都已经加载完毕.

实际开发中,都是写在最下面

第三讲.获取元素节点

通过document对象调用

  1. getElementById( )

    通过id属性获取一个元素节点对象

  2. getElementsByTagName( )

    通过标签名获取一组元素节点对象

    会返回一个类数组对象,所查询到的元素都会封装到对象中,这个对象的每一个数组值为一个节点

  3. getElementsByName( )

    通过name属性获取一组节点对象

innerHTML用于获取元素内部的HTML代码,但是无法获取自结束标签的信息

如果需要读取元素节点的属性,可以直接:元素.属性名

var inputs=getElementsByName('a');
for(var i=0;i<inputs.length;i++){
    alert(inputs[i].value);
}

注意:class属性不能采用写class,因为class是js的保留字,要用元素.className

第四讲.获取子节点

通过具体的元素节点调用

方法:getElemtByTagName( )

属性:

  1. childNodes 表示当前节点的所有子节点

    它会获取文本节点在内的所有子节点

    根据dom标准,标签间的空白也会被识别成文本节点

  2. firstChild 表示当前节点的第一个子节点

    一般情况下也是获取空白

  3. lastChild 表示当前节点的最后一个子节点

    一般情况下也是获取空白

  4. children 表示当前元素的所有子元素(只有标签,没有烦人的空白文本)

  5. firstElementchild 获取第一个子元素

    不支持ie8以下

var city=document.getElementsById('city');
var lis=city.getElementsById('li');
var cns=city.childNodes;
var cns=city.children;

第五讲.获取父节点和兄弟节点

通过具体的节点调用

属性:

  1. parentNode 表示当前节点的父节点

  2. previousSibling 表示当前节点的前一个兄弟节点

    节点不是元素,你懂的

  3. nextSibling 表示当前节点的后一个兄弟节点

  4. previousElementSibling 表示当前节点的前一个兄弟元素

定义一个函数,专门为指定的元素绑定单击指定函数

function myClick(idStr,fun){
    var btn=document.getElementById(idStr);
    btn.onclick=fun;
}
myClick('btn07',function(){
	var city=document,getElementById('bj');
    var pn=city.parenrNode;
    alert(pn);
})

属性:innerText 该属性可以获取到元素内部的文本内容

它和html类似,不同的是,它会自动将html的标签去除

而innerHTML会保留该节点的子节点的标签信息,转化为文本一并输出

如果需要读取元素节点的属性,可以直接:元素.属性名

文本框的value属性值就是文本框的内容

也可以给value赋值,使之在点击时修改内容

um.value='今天天气真不戳';

如果要获取一个元素里面的属性值,可以直接获取它的第一个子节点

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值