美文网首页JavaScript学习笔记
JavaScript——关于节点的杂项

JavaScript——关于节点的杂项

作者: _我爱吃柠檬_ | 来源:发表于2016-08-10 14:59 被阅读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"));

    相关文章

      网友评论

        本文标题:JavaScript——关于节点的杂项

        本文链接:https://www.haomeiwen.com/subject/ztvdsttx.html