JS——文档对像模型DOM

什么是dom?
dom不是javascript,dom是文档。
dom是一组用来描述脚本怎么与结构化文档进行交互和访问的web标准。
dom定义了一系列对象、方法和属性,用于访问、操作和创建文档中的内容、结构、样式以及行为。
dom可以说就是为了获得对象而存在的。
如果你有其他的方法,你就可以替代dom的作用。


节点

根据DOM,HTML文档中的每个成分都是一个节点。
DOM是这样规定的:
整个文档是一个文档节点
每个HTML标签是一个元素节点
包含在HTML元素中的文本是文本节点
每一个HTML属性是一个属性节点
注释属于注释节点

document.getElementById() 根据Id获取元素节点

document.getElementsByName() 根据name获取元素节点

document.getElementsByTagName() 根据HTML标签名获取元素节点,注意getElements***的选择器返回的是一个NodeList对象,能根据索引号选择其中1个,可以遍历输出。
复制代码

document.getElementsByClassName() 根据class获取元素节点

javascript中的CSS选择器


文档结构和遍历 ———

(1)作为节点数的文档
1、parentNode    获取该节点的父节点    
2、childNodes    获取该节点的子节点数组
3、firstChild    获取该节点的第一个子节点
4、lastChild    获取该节点的最后一个子节点
5、nextSibling    获取该节点的下一个兄弟元素
6、previoursSibling    获取该节点的上一个兄弟元素
 7、nodeType    节点的类型,9代表Document节点,1代表Element点,3Text节点,8代表Comment节点,11代表DocumentFragment节点

8、nodeVlue    Text节点或Comment节点的文本内容
9、nodeName    元素的标签名(如P,SPAN,#text(文本节点),DIV),以大写形式表示

注意,以上6个方法连元素节点也算一个节点。

(2)作为元素树的文档
1、firstElementChild 第一个子元素节点
2、lastElementChild 最后一个子元素节点
3、nextElementSibling 下一个兄弟元素节点
4、previousElementSibling 前一个兄弟元素节点
5、childElementCount 子元素节点个数量
注意,此5个方法文本节点不算进去


javascript操作HTML属性

 1、属性的读取,此处要注意的是,某些HTML属性名称在javascript之中是保留 字,因此会有些许不同,如class,lable中的for在javascript中变为       htmlFor,className。   

2、属性的设置,此处同样要注意的是保留字

3、非标准HTML属性
getAttribute();    //注意这两个方法是不必理会javascript保留字的,HTML属性是什么就怎么写。
setAttribute();

4、Attr节点的属性
    attributes属性  非Element对象返回null,Element一半返回Attr对象。Attr对象是一个特殊的Node,通过name与value获取属性名称与值。
    如:document.getElementById("img1")[0];
       document.getElementById("img1").src;

元素的内容
1、innerText、textContent innerText与textContent的区别,当文本为空时,innerText是”“,而textContent是undefined
2、innerHTML


我是第一个P


我是第个P



window.onload = function () {
alert(document.getElementById(“p1”).innerText); //注意火狐浏览器不支持innerText
alert(document.getElementById(“p1”).textContent); //基本都支持textContent
document.getElementById(“p1”).textContent = “我是p1,javascript改变了我”; //设置文档Text
alert(document.getElementById(“p2”).textContent);
alert(document.getElementById(“p2”).innerHTML); //innerHTML与innerText的区别,就是对HTML代码的输出方式Text不会输出HTML代码
}


创建,插入,删除节点

    1、document.createTextNode()    创建一个文本节点

2、document.createElement()    创建一个元素节点

3、插入节点
    appendChild()    //将一个节点插入到调用节点的最后面
    insertBefore()    //接受两个参数,第一个为待插入的节点,第二个指明在哪个节点前面,如果不传入第二个参数,则跟appendChild一样,放在最后。
  `<div id="div1">
        <p id="p1">我是第一个P</p>
    </div>

window.onload = function () {
        var pNode1 = document.createElement("p");
        pNode1.textContent = "insertBefore插入的节点";
        var pNode2 = document.createElement("p");
        pNode2.textContent = "appendChild插入的节点";
        document.getElementById("div1").appendChild(pNode2);
        document.getElementById("div1").insertBefore(pNode1,document.getElementById("p1"));
    }`

删除和替换节点。

1、removeChild();    由父元素调用,删除一个子节点。注意是直接父元素调用,删除直接子元素才有效,删除孙子元素就没有效果了。

2、replaceChild()    //删除一个子节点,并用一个新节点代替它,第一个参数为新建的节点,第二个节点为被替换的节点

javascript操作元素CSS

    通过元素的style属性可以随意读取和设置元素的CSS样式,例子:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值