DOM(document object model)文档对象模型

php中,DOM是PHP语言与xml/html标签之间沟通的桥梁,在js中也同样,是js与xml/html之间沟通的一个桥梁。所以学习DOM就是通过js来对HTML标签内容做增、删、改、查等操作。

元素节点获取

//通过ID获取具体节点
var it = document.getElementById('username');

//通过标签访问具体节点,获取的形式为数组或集合形式
var hh = document.getElementsByTagName('h2');
//通过name标签访问具体节点,获取的形式为数组或集合形式
var it = document.getElementsByName('username');

文本节点获取

<div>today is very<span>good</span></div>

若想获取这个文本节点,需要借助元素节点先获取div,然后在获得其内部文本节点

var it3 = document.getElementsByTagName('div')[0];
//获得div内部第一个子节点对象并获得文本信息
console.log(it3.lastChild.wholeText);

属性节点获取

节点.attributes:把该节点所有属性以数组形式返回
节点.nodeTyoe:返回节点类型,1.元素节点 2.属性节点 3.文本节点 4.document节点

属性值操作
//获取属性值
节点.getAttribute(属性名称);
//设置属性值
节点.setAttrubute(属性名称,值);

兄弟节点获取

firstChild,lastChild:子节点获得第一个/最后一个节点
nextSibling:获得下一个兄弟节点
previousSibling:获得上一个兄弟节点
childNodes:获取全部子节点,主流浏览器会把空白节点算上,而老版本IE不会

父节点获取

parentNode:获取当前元素父节点


节点创建和追加

父节点.appendChild(子节点);添加节点
父节点.insertBefore(要插入的节点,插入位置的节点)
父节点.replaceChild(要替换的节点,被替换的节点)
通过js动态创建节点如下:

<ul><li mean="热情">red</li></ul>

具体js代码:

//创建ui标签
var ull = document.createElement('ul');
//创建li标签
var lii = document.createElement('li');
//创建文本
var txt = document.createTextNode('red');
//为lii设置mean属性
lii.setAttribute('mean','热情');
//给lii节点添加文本
lii.appendChild(txt);
//给ull节点添加lii节点
ull.appendChild(lii);
//给body节点添加ull
document.body.appendChild(ull);

节点复制操作

被复制节点.cloneNode(false/true):false浅复制(本身节点) true深复制(本身和内部子节点都复制)

节点删除

节点.removeChild(子节点)
子节点.parentNode.removeChild(子节点)


DOM对CSS样式操作

  1. 获取CSS样式
    节点.style.css.样式名称
  2. 设置CSS样式(有就修改,没有则添加)
    元素节点.style.css.样式名称 = 值

注意:
DOM操作CSS样式只能操作"行内样式"(CSS样式分为行内、内部、外部)

操作的属性如果带横杠,需要把横杠去掉,并把紧接着的字母大写。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 用来将标记型文档封装成对象,并将标记型文档中的所有的内容(标签,文本,属性等)都封装成对象。封装成对象的目...
    xinkule阅读 524评论 0 0
  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,790评论 1 92
  • 之前通过深入学习DOM的相关知识,看了慕课网DOM探索之基础详解篇这个视频(在最近看第三遍的时候,准备记录一点东西...
    微醺岁月阅读 4,514评论 2 61
  • 有理数是进入中学阶段后的第一课,基础地位不容动摇,本次测试范围为,正负数,有理数分类,数轴,绝对值,相反数,题目考...
    宜人安心阅读 636评论 0 1
  • 第七章:关于诅咒 阴沉沉的天际,电闪雷鸣,豆大的雨点,伴随着狂风席卷而来,如数千万只鬼魅的手爪,恐吓般的敲打着屋顶...
    阿当芙亚阅读 417评论 1 1