innerHTML和innerText的区别和 自定义属性操作

DOM操作详解

1 innerHTML和innerText的区别和textContent

innerHTML会获得当前元素所有的属性操作(div的所有)
innderText只会获得div和a标签里面的类容

textContent 属性设置或者返回指定节点的文本内容。

如果你设置了 textContent 属性, 任何的子节点会被移除及被指定的字符串的文本节点替换。所有主要浏览器都支持 textContent 属性

注意: Internet Explorer 8 及 更早 IE版本不支持该属性。

2自定义属性操作

element.getAttributet("属性 ") 获取属性
element.setAttributet("属性 ") 设置属性
element.removeAttributet("属性 ")删除属性
h5 规定data-开头的是自定义属性
h5 新增查找自定义属性element.dataset.index
如果名字很长 用驼峰名民法

3节点操作

在HTML当中,一切都是节点:(非常重要)

元素节点:HMTL标签。

文本节点:标签中的文字(比如标签之间的空格、换行)

属性节点::标签的属性。
整个html文档就是一个文档节点。所有的节点都是Object。

获取父节点
调用者就是节点。一个节点只有一个父节点,调用方式就是
节点.parentNode

(1)nextSibling:
指的是下一个节点(包括标签、空文档和换行节点)

火狐、谷歌、IE9+版本:都指的是下一个节点(包括标签、空文档和换行节点)。

IE678版本:指下一个元素节点(标签)。
总结:为了获取下一个元素节点,我们可以这样做:在IE678中用nextSibling,在火狐谷歌IE9+以后用nextElementSibling,于是,综合这两个属性,可以这样写:
下一个兄弟节点 = 节点.nextElementSibling || 节点.nextSibling
previous的中文是: 前一个

(1)previousSibling:

火狐、谷歌、IE9+版本:都指的是前一个节点(包括标签、空文档和换行节点)。

IE678版本:指前一个元素节点(标签)。

(2)previousElementSibling:

火狐、谷歌、IE9+版本:都指的是前一个元素节点(标签)。
总结:为了获取前一个元素节点,我们可以这样做:在IE678中用previousSibling,在火狐谷歌IE9+以后用previousElementSibling,于是,综合这两个属性,可以这样写:

前一个兄弟节点 = 节点.previousElementSibling || 节点.previousSibling
获得任意一个兄弟节点:

节点自己.parentNode.children[index];
获取单个的子节点
1、第一个子节点 | 第一个子元素节点:

(1)firstChild:

火狐、谷歌、IE9+版本:都指的是第一个子节点(包括标签、空文档和换行节点)。

IE678版本:指第一个子元素节点(标签)。

(2)firstElementChild:

火狐、谷歌、IE9+版本:都指的是第一个子元素节点(标签)。
总结:为了获取第一个子元素节点,我们可以这样做:在IE678中用firstChild,在火狐谷歌IE9+以后用firstElementChild,于是,综合这两个属性,可以这样写:

第一个子元素节点 = 节点.firstElementChild || 节点.firstChild
最后一个子节点 | 最后一个子元素节点:

(1)lastChild:

火狐、谷歌、IE9+版本:都指的是最后一个子节点(包括标签、空文档和换行节点)。

IE678版本:指最后一个子元素节点(标签)。

(2)lastElementChild:

火狐、谷歌、IE9+版本:都指的是最后一个子元素节点(标签)。
总结:为了获取最后一个子元素节点,我们可以这样做:在IE678中用lastChild,在火狐谷歌IE9+以后用lastElementChild,于是,综合这两个属性,可以这样写:

最后一个子元素节点 = 节点.lastElementChild || 节点.lastChild
获取所有的子节点
(1)childNodes:标准属性。返回的是指定元素的子节点的集合(包括元素节点、所有属性、文本节点)。是W3C的亲儿子。

火狐 谷歌等高本版会把换行也看做是子节点。(了解)
用法:

子节点数组 = 父节点.childNodes; //获取所有节点。
插入节点
插入节点有两种方式,它们的含义是不同的。

方式1:

父节点.appendChild(新的子节点);
解释:父节点的最后插入一个新的子节点。

方式2:

父节点.insertBefore(新的子节点,作为参考的子节点);
解释:

在参考节点前插入一个新的节点。
如果参考节点为null,那么他将在父节点最后插入一个子节点。
删除节点
格式如下:

父节点.removeChild(子节点);
解释:用父节点删除子节点。必须要指定是删除哪个子节点。

如果我想删除自己这个节点,可以这么做:

node1.parentNode.removeChild(node1);
复制节点(克隆节点)
格式如下:

要复制的节点.cloneNode(); //括号里不带参数和带参数false,效果是一样的。

要复制的节点.cloneNode(true);
括号里带不带参数,效果是不同的。解释如下:

不带参数/带参数false:只复制节点本身,不复制子节点。

带参数true:既复制节点本身,也复制其所有的子节点。

元素节点 node type 为1
属性节点 node type 为2
文本节点node type 为3(包括文字 空格 换行)

console.dir()打印元素对象

父节点.children 获取子节点

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值