zoukankan      html  css  js  c++  java
  • Javascript 之 DOM

    Document  Object  Model

    获取DOM节点

    var id = document.getElementById('dom');  // 一个元素
    var tagName = document.getElementsByTagName('a');  // 元素的集合
    var className = document.getElementsByClassName('dom');  // 元素的集合
    var domList = document.querySelectorAll('p');  // 元素的集合

    property 和 attribute

    <div id="dom" class="div-dom">
      <p id="p" data-name="p-data-name">this is p!</p>
    </div>

    // property  标准的js对象的属性操作
    var dom = document.getElementById('dom');
    console.log(dom.className);  // 'div-dom'

    //attribute  对 html 标签属性(包括自定义属性,如data-xxx)操作  获取 getAttribute()  设置 setAttribute()
    var p = document.getElementById('p');
    console.log(p.getAttribute('data-name'));  // 'p-data-name'
    p.setAttribute('data-name', 'div-data-name');

    新增节点

    var p = document.createElement('p');
    document.body.appendChild(p);

    insertBefore()  // 在某个元素节点前插入节点,接收两个参数,第一个为待插入的节点,第二个为在哪个节点前插入,如果第二个参数不传,则与 appendChild 方法一样,在最后插入

    replaceChild()  // 替换某个子节点,接收两个参数,第一个为将要代替的新节点,第二个为将要被替换的旧节点

    移动节点

    var dom = document.getElementById('dom');
    document.body.appendChild(dom);  // 把 dom 从原来的位置移动到添加位置

    获取父元素

    var dom = document.getElementById('dom');
    var parent = dom.parentElement;  // 一个父元素

    获取子元素

    var dom = document.getElementById('dom');
    var child = dom.childNodes;  // 子元素集合

    删除节点

    var dom = document.getElementById('dom');
    var child = dom.childNodes;
    dom.removeChild(child[0]);

     节点遍历

    parentNode  // 获取当前节点的父节点
    childNodes  // 获取当前节点的子节点集合(数组形式)
    firstChild  // 获取当前节点的第一个子节点
    lastChild  // 获取当前节点的最后一个子节点
    nextSibling  // 获取当前节点的下一个兄弟节点
    previoursSibling  // 获取当前的上一个兄弟节点
    nodeType  // 节点类型:9表示Document节点、1表示Element节点、3表示Text节点、8表示Comment节点、11表示DocumentFragment节点
    nodeVlue  // Text节点或Comment节点的文本内容
    nodeName  // 节点的标签名称(如:a节点的标签名称是 A),以大写形式表示

    firstElementChild  // 第一个子元素节点
    lastElementChild  // 最后一个子元素节点
    nextElementSibling  // 下一个兄弟元素节点
    previoursElementSibling  // 前一个兄弟元素节点
    childElementCount  // 子元素节点的个数

     window 尺寸

    有三种方法能够确定浏览器窗口的尺寸(浏览器的视口,不包括工具栏和滚动条)
    1、对于 Internet Explorer、Chrome、Firefox、Opera 以及 Safari
      window.innerHeight  // 浏览器窗口的内部高度
      window.innerWidth  // 浏览器窗口的内部宽度
    2、对于 Internet Explorer 8、7、6、5
      document.documentElement.clientHeight
      document.documentElement.clientWidth
    3、或者
      document.body.clientHeight
      document.body.clientWidth
    实用的 javascript 方案(涵盖所有浏览器)
      var w = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;
      var h = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight;

     页面回到顶部或底部

    document.body.scrollTop = document.documentElement.scrollTop = 0;  // 兼容 IE、Chrome

    元素的宽、高

    document.body.clientHeight  // 窗口的内部高度,包括 padding 值
    document.body.clientWidth  // 窗口的内部宽度,包括 padding 值

    div.clientHeight  // 元素的高度,包括 padding 值
    div.clientWidth  // 元素的宽度,包括 padding 值
    div.clientTop   // 返回对象的 offsetTop 属性值和到当前窗口上边的真实值之间的距离,可以理解为边框的宽度
    div.clientLeft   // 返回对象的 offsetLeft 属性值和到当前窗口左边的真实值之间的距离,可以理解为边框的宽度
    div.offsetHeight  // 元素的高度,包括 padding、border 值  只读属性,不可设置
    div.offsetWidth  // 元素的宽度,包括 padding、border 值
    div.offsetTop  // 元素距离上方或上层元素的垂直位置
    div.offsetLeft  // 元素距离上层元素的水平位置

     滚动元素、滚动元素的宽和高

    当一个 div 容器包含的子元素的宽高超过 div 容器宽高,同时 div 容器设置 overflow: scroll; 样式时,可对 div 容器自身进行滚动设置
    div.scrollTop  // 元素内部向上滚动的距离
    div.scrollLeft  // 元素内部向左滚动的距离
    div.scrollHeight  // 元素内部的绝对高度(是指内部元素的实际高度加上容器自身 padding 值)
    div.scrollWidth  // 元素内部的绝对宽度(同 scrollHeight 一样)
  • 相关阅读:
    (转)编写高质量高效率的SharePoint应用程序
    转:我眼中的Visual Studio 2010架构工具
    Windows 7 x64/Windows 2008 : The ‘Microsoft.Jet.OLEDB.4.0′ provider is not registered on the local machine.
    转:构建高性能ASP.NET站点之一 剖析页面的处理过程(前端)
    HTML5 到底是什么?
    使用eval()解析JSON格式字符串应注意的问题
    使用HTML5进行地理位置定位。误差在+500m
    LAST DAY
    javacript获取obj的长度
    通过 JSON 字符串来创建对象
  • 原文地址:https://www.cnblogs.com/joffe/p/7674832.html
Copyright © 2011-2022 走看看