DOM--笔记

什么是DOM?

JavaScript三个组成部分之一——文档对象模型(DOM)

官方定义:DOM 为文档提供了结构化表示,并定义了如何通过脚本来访问文档结构,

目的其实就是为了能让js操作html元素而制定的一个规范

DOM树:可以更好的理解DOM


由结构图中我们可以看到,整个文档就是一个文档节点

标签 、标记、元素、属性都属于节点 

而每一个HMTL标签都是一个元素节点

标签中的文字则是文字节点

标签的属性是属性节点

一切都是节点……

访问节点 :

getElementById()                     id访问节点

getElementsByTagName()        标签访问节点

var btn =document.getElementsByTagName("button")[0];//加[0]是因为数组不能直接被使用

getElementsByClassName()      类名访问节点,有兼容性问题(主流浏览器支持,ie 6 7 8 不认识)

类名访问节点的兼容写要熟练


节点访问关系:

父节点:parentNode

<script>
    window.onload = function(){
        var x = document.getElementById("x");
        x.onclick = function(){
            this.parentNode.style.display = "none";
            // 关掉的是他的 父节点
        }
    }
</script>


兄弟节点(同级关系,用的很少):

nextSibling  下一个兄弟     ie 6 7 8 认识

nextElementSibling  其他浏览器认识的

previousSibling  上一个兄弟    ie 6 7 8 认识

previousElementSibling    其他浏览器认识的

想要兼容    可以用     ||     合写

var div = one.nextElementSibling || one.nextSibling;
div.style.backgroundColor = "red";

必须先写 正常浏览器  后写  ie 6 7 8


子节点(不常用)

firstChild    第一个孩子  ie 6 7 8

firstElementChild  第一个孩子   正常浏览器 

varone.firstElementChild || one.firstChild    兼容写法

lastChild    第一个孩子  ie 6 7 8

lastElementChild    第一个孩子   正常浏览器


选出全部的子节点

childNodes    选出全部的子节点

childNodes:它是标准属性,它返回指定元素的子元素集合,包括HTML节点,所有属性,文本节点

火狐谷歌等高本版(标准浏览器)会把换行也看做是子节点

利用  nodeType ==1   时才是元素节点     来获取元素节点


children   (重要)  选取所有的孩子 (只有元素节点)

这个用的更多,没有兼容性,唯一要注意的是

ie 6 7 8  包含 注释节点     这个要避免开


DOM节点的操作

新建节点   插入节点   删除节点   克隆节点 等等

创建节点

var div = document.creatElement(“li”);

上面的意思就是 生成一个新的  li 标签

插入节点

1. appendChild();    添加节点    append 添加的意思

意思:  添加孩子   放到盒子的 最后面

2. insertBefore(插入的节点,参照节点)   子节点  添加孩子

写满两个参数

dmo.insertBefore(test,childrens[0]);

放到了第一个孩子的前面 

如果第二个参数  为 null  则默认这新生成的盒子放到最后面

demo.insertBefore(test,null);


移除节点

removeChild()    孩子节点      

var da = document.getElementById("xiongda");
demo.removeChild(da);

克隆节点

cloneNode();

复制节点

括号里面可以跟参数  , 如果 里面是 true  深层复制,除了复制本盒子,还复制子节点 

如果为 false  浅层复制   只复制   本节点  不复制 子节点


设置节点属性


1.  获取节点属性  

   getAttribute(属性)      获取属性    

   通过这个方法,可以得到 某些元素的  某些属性

alert(demo.getAttribute("title"));

   弹出对话框:    弹出title里面的内容

2. 设置节点属性

   setAttribute(“属性”,”值”);

   比如说,我们想要把一个 类名  改为  demo 

   div.setAttribute(“class”,”demo”);

3. 删除某个属性

    removeAttribute(“属性”);

    demo.removeAttribute(“title”) 

    这个盒子就没有title  属性 给删掉了  。

    A.appendChild(B);

    B 一定是 A 孩子      同时  b 放到了a 的里面  装到里面去了  最后面。   b 放到 a 里面

    A.insertBefore(B,C)    

    B C  都是 A 的孩子 

    把 b  放到  a 里面 ,但是 是 c 的前面



     待续。。。                                                                                                                                                   

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值