• js中的DOM


    js中获取元素的方法
    document.getElementById() 通过ID来获取一个元素
    getElementById的上下文只能是document
    1、理论上一个页面中的ID是唯一的,但是可能由于误操作写重复了,浏览器不会认为这是报错,此时通过getElementById获取的只是第一个
    2、在IE67中会把表单元素的name值也当做ID,所以以后开发过程中表单的name不要和ID重复
    3、在IE67下不区分ID的大小写,所以以后在开发过程中不要用大小写区分ID
    4、我们可以不通过getElementById获取,直接的写id也代表当前的这个元素(但是不推荐这么写)


    document.getElementsByTagName() 通过标签名来获取一组元素
    document是当前获取的范围(我们称之为上下文 context),并且这个getElementsByTagName方法的上下文不固定,不一定是document

    document.getElementsByName() 通过name属性的值来获取一组元素,在IE浏览器下默认只有表单元素才天生自带name属性,所以在IE浏览器下getElementsByName只对表单元素起作用
    getElementsByName的上下文只能是document

    document.getElementsByClassName() 通过class属性的值(类名)来获取一组元素,此方法在IE6~8浏览器下不兼容
    这个方法的上下文可以不是document

    document.documentElement 获取整个HTML
    document.body 获取整个body
    document.head 获取整个head

    获取当前屏幕的高度和宽度
    var cw = document.documentElement.clientWidth || document.body.clientWidth;//顺序不要变
    var ch = document.documentElement.clientHeight || document.body.clientHeight;
    console.log(cw,ch);

    基本上我们都是在移动端使用这两个方法:因为不兼容IE6~8
    document.querySelector() 获取一个元素
    document.querySelectorAll() 获取多个元素



    Node:节点
    节点分类 nodeType nodeName nodeValue
    元素节点 1 大写标签名 null
    文本节点(text) 3 #text 文字内容
    注释节点(comment) 8 #comment 注释内容
    document 9 #document null
    在标准浏览器(非IE6~8)中,浏览器会把空格和换行都当做文本节点来处理

    childNodes:获取所有的子节点
    children:获取所有的元素子节点 节点中包含元素节点和注释节点
    parentNode:获取父亲节点
    previousSibling:获取上一个哥哥节点
    nextSibling:获取下一个弟弟节点
    firstChild:获取大儿子
    lastChild:获取小儿子


    DOM增、删、改

    增加创建:
    创建一个元素节点:createElement
    var oDiv = document.createElement("div");
    oDiv.id = "div1";
    oDiv.style.width = "100px";
    oDiv.style.height = "100px";
    oDiv.style.backgroundColor = "red";
    oDiv.innerHTML = "珠峰培训";
    我需要把创建的元素节点添加到我们的页面中(body中):appendChild
    document.body.appendChild(oDiv);
    appendChild:添加到指定元素中最末尾的位置


    克隆一个和oDiv一模一样的:cloneNode(true/false) true:把当前的元素和它的子子孙孙都克隆  false:只克隆当前自己(默认值)
    var oDiv2 = oDiv.cloneNode(true);
    oDiv2.id = "div2";
    oDiv2.style.backgroundColor = "yellow";


    insertBefore:添加到指定的容器中某一个元素之前 要增加的新元素newEle,添加到谁之前oldEle
    oldEle.parentNode.insertBefore(newEle,oldEle)
    oDiv.parentNode.insertBefore(oDiv2, oDiv);
    document.body.insertBefore(oDiv2, oDiv);

    document.body.removeChild(oDiv); removeChild删除指定的元素


    设置自定义属性,可以在HTML结构上看到的
    oDiv2.setAttribute("zhuFeng","珠峰");
    console.log(oDiv2.getAttribute("zhuFeng"));
    oDiv2.removeAttribute("zhuFeng");
    这种方式在IE6~8下不能设置class的值






  • 相关阅读:
    BAT系列(一)— CNN
    图像处理基本知识总结(一)
    机器学习(二十一)— 特征工程、特征选择、归一化方法
    C++(三)— 二维容器
    代码题(19)— 组合与排列
    代码题(18)— 子集
    机器学习(二十)— 常见统计学习方法总结(一)
    【angularjs】使用angular搭建项目,获取dom元素
    【css】常用css
    【angularjs】使用angular搭建项目,图片懒加载资料
  • 原文地址:https://www.cnblogs.com/jingjing0518/p/4722394.html
Copyright © 2020-2023  润新知