JavaScript学习笔记

JavaScript——关于节点的杂项

2016-08-10  本文已影响35人  _我爱吃柠檬_

首先如果使用DOM模型,需要将整个的script写在body的后面,保证整个DOM模型完整生成之后,再获取对应的元素

id  表示DOM中的某个节点的唯一标识,该标识乐意帮助我们快速获取DOM中的某个指定节点,因其唯一性,所以得到的节点也是唯一的,故在文档中不适合多个标签使用同一个id

通过标签名来获取对应的标签,通过此方法返回的结果是以HTMLCollection来保存的。

HTMLColloction是伪数组,没有数组的push,pop,但是依然有下标的概念,下标的范围(0~长度~1),有length属性,可以明确保存的元素个数

例如:得到body里面的ol中的li元素

var lis = document.getElementByTagName("li");

console.log(lis).

通过childNodes属性可以获取节点的子节点,一直要到叶子节点,如果子节点之间有回车换行,回车会被当做一个text节点,如果要用childNodes属性获取正确节点,则不能使用换行

console.log(list.childNodes);

console.log(list.firstChildNode);

console.log(list.lastChildNode);

获取指定节点的父节点

console.log(list.parentNode);

在某一个已经存在的子节点前插入一个新的子节点

var div = document.createElement("div");

div.style.width = "200px";

div.style.height = "200px";

div.style.background = "red";

在某一个节点下插入一个新的节点:

ininsertBerfore有两个参数,第一个是新元素,第二个是已经存在的元素(中间是逗号隔开,而不是句号)

list.parentNode.insertBefore(div,list);

已经存在的两个子节点可以通过此方法来交换顺序

list.parentNode.insertBefore(list,div);

替换已有的子节点,拿第一个参数元素去替换第二个参数元素

list.replaceChild(lis[0],lis[3]);

删除已有的节点

list.removeChild(lis[0]);

复制子节点,cloneNode()的参数是boolean类型的

true:复制节点及其子节点(如果存在节点)

复制节点及其子节点的文本内容(如果存在内容)

false:只复制当前节点本身,不包含子节点及其文本内容

获取节点的另一种属性:

children属性得到的只是子节点元素,不包括回车和空格等字符,但是在IE9浏览器上回包含代码注释,IE9会把代码注释也当做一个子节点。

console.log(list.children);

list.setAttribute("index" , 121);

获取已知节点的属性值

console.log(list.getAttribute("index"));

上一篇下一篇

猜你喜欢

热点阅读